sbt如何选择使用哪个Scala版本?

Mar*_*ark 18 scala sbt

我的sbt构建中有多个项目.我正在尝试从2.9.1升级到Scala 2.10,所以在我的build.sbt文件中我放了

scalaVersion := "2.10.0"
Run Code Online (Sandbox Code Playgroud)

这似乎有效,因为在我的顶级项目中,我得到:

> scala-version
[info] 2.10.0  
Run Code Online (Sandbox Code Playgroud)

但是,当我切换到其他项目之一时:

> project web-client
[info] Set current project to web-client (in build file:/C:/Users/...
[web-client] $ scala-version
[info] 2.9.1  
Run Code Online (Sandbox Code Playgroud)

您看到版本现已更改回2.9.1!如何强制在我的所有项目中使用相同的Scala版本?

Mar*_*ark 23

我发现scalaVersion的范围包含到ThisBuild将为所有子项目设置它.详细信息如下:http://www.scala-sbt.org/release/docs/Getting-Started/Multi-Project.html底部,但这里是它的内容:

要只设置一次,在main.sbt主文件中写入以下行就足够了:

scalaVersion in ThisBuild := "2.10.0"
Run Code Online (Sandbox Code Playgroud)


Dan*_*ral 6

SBT有一个默认的Scala版本.scalaVersion如果要更改,则需要将设置添加到所有子项目.最常见的方法是使用"公共设置"值,将其添加到根级别的所有项目中project/Build.scala.

  • 我可以更改SBT的默认Scala版本吗? (2认同)