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

时间:2013-01-28 22:08:00

标签: scala sbt

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

scalaVersion := "2.10.0"

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

> scala-version
[info] 2.10.0  

然而,当我切换到其他项目之一时:

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

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

2 个答案:

答案 0 :(得分:22)

我发现将scalaVersion作为范围设定为ThisBuild将为所有子项目设置它。详细信息如下:http://www.scala-sbt.org/release/docs/Getting-Started/Multi-Project.html位于底部,但其内容如下:

要只设置一次,只需在主build.sbt文件中写入以下行:

scalaVersion in ThisBuild := "2.10.0"

答案 1 :(得分:6)

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