阅读Scopes文档后,我预计
scalaVersion in Global := "2.10.3"
在object MyProjectBuild extends Build
中为所有项目设置scalaVersion
。但是,重新加载项目后,我得到了
> show scalaVersion
[info] subproject1/*:scalaVersion
[info] 2.10.2
[info] subproject2/*:scalaVersion
[info] 2.10.2
[info] all/*:scalaVersion
[info] 2.10.2
ThisBuild
代替Global
也是如此。其他任何地方都没有设置scalaVersion
。我有什么误会? inspect
生成(Global
和ThisBuild
):
> inspect scalaVersion
[info] Setting: java.lang.String = 2.10.2
[info] Description:
[info] The version of Scala used for building.
[info] Provided by:
[info] */*:scalaVersion
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:211
[info] Reverse dependencies:
[info] all/*:ivyReport::update
[info] all/*:dependencyUpdatesData
[info] all/*:scalaInstance
[info] all/*:update
[info] all/*:allDependencies
[info] all/*:libraryDependencies
[info] Delegates:
[info] all/*:scalaVersion
[info] {.}/*:scalaVersion
[info] */*:scalaVersion
[info] Related:
[info] */*:scalaVersion
> inspect actual scalaVersion
[info] Setting: java.lang.String = 2.10.2
[info] Description:
[info] The version of Scala used for building.
[info] Provided by:
[info] */*:scalaVersion
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:211
[info] Delegates:
[info] all/*:scalaVersion
[info] {.}/*:scalaVersion
[info] */*:scalaVersion
[info] Related:
[info] */*:scalaVersion
我目前为所有项目使用val commonSettings = Seq(scalaVersion := ...)
和settings(commonSettings: _*)
为所有项目设置了常用设置,所以问题就是为什么上述方法不起作用。
答案 0 :(得分:0)
我的猜测是你正在使用Play Framework或其他一些将自己的密钥添加到构建中的框架,并且你在添加框架密钥之前设置了scala版本。
将scalaVersion
定义移动到构建脚本的底部,您应该得到您想要的内容(或者移动playScalaSettings
或定义上方的任何其他内容)
答案 1 :(得分:0)
该项目使用的是SBT 0.13.0。切换到0.13.1后,它按预期工作,但我在changelog中看不到任何相关内容。