SBT:如何为多项目设置通用scala版本
我在IntellJ Idea有一个多SBT项目。我的根目录中的SBT文件如下所示:SBT:如何为多项目设置通用scala版本,scala,sbt,Scala,Sbt,我在IntellJ Idea有一个多SBT项目。我的根目录中的SBT文件如下所示: name := "PlayRoot" version := "1.0" lazy val shapeless_learn = project.in(file("shapeless_learn")).dependsOn(common) lazy val scalaz_learn = project.in(file("scalaz_learn")).dependsOn(common) lazy val commo
name := "PlayRoot"
version := "1.0"
lazy val shapeless_learn = project.in(file("shapeless_learn")).dependsOn(common)
lazy val scalaz_learn = project.in(file("scalaz_learn")).dependsOn(common)
lazy val common = project.in(file("common"))
lazy val root = project.in(file(".")).aggregate(common, shapeless_learn, scalaz_learn)
scalaVersion := "2.11.7"
然后我为每个项目设置了文件夹:/common
,/shapeless\u learn
,/scalaz\u learn
,每个项目都有自己的build.sbt
。但出于某种原因,我需要在每个子项目build.sbt
文件中输入一行scalaVersion:=“2.11.7”
如果我忘记执行此操作,则生成将失败,并显示以下消息:
Error:Unresolved dependencies: common#common_2.10;0.1-SNAPSHOT: not found
See complete log in ...
出于某种原因,如果我没有指定我的scala版本是2.11.7
,sbt会退回到2.10
,并尝试查找为2.10
构建的公共项目,而我没有该项目
我总是忘记在新创建的项目中添加scalaraversion:=“2.11.7”
,这一直困扰着我。我还希望使用一些默认数据生成sbtbuild.sbt
,但它要求我不要忘记手动创建它
有没有办法在一个地方为所有项目和子项目设置单一的scala版本?我想我可以在根定义中添加一个单独的lazy val commonSettings=Seq{scalaVersion:=“2.11.7”}
。对于每个lazy val项目
定义,我应该在末尾添加.settings(commonSettings)
。这很好,但看起来还不够漂亮-我应该为每个项目定义这样做。有更好的办法吗
是否有任何方法可以为新创建的项目创建模板,因此,当我只放置行lazy val newProject=…
时,它将在那里放置一个适当的build.sbt
文件,其中包含我想要的内容
使用
在rootbuild.sbt中使用
在rootbuild.sbt
中
scalaVersion in ThisBuild := "2.11.7"