sbt console - 为所有子项目设置 scala-version

0__*_*0__ 3 scala sbt

我为每个模块都有一个多项目构建scalaVersion := "2.11.8"

我想在不接触构建文件的情况下运行 Scala 2.12.0-RC1 testpublish-local我认为以下方法会起作用:

$ sbt
> set scalaVersion in ThisBuild := "2.12.0-RC1"
> test
Run Code Online (Sandbox Code Playgroud)

但这不会改变所使用的 Scala 版本,sbt 仍然使用 Scala 2.11.8 进行编译。这仅适用于单个模块构建(没有project定义)。

如何scalaVersion从 sbt 控制台有效覆盖所有子模块?

Ale*_*nov 5

您的尝试不起作用,因为模块的设置优先于ThisBuild;的设置。scalaVersion in ThisBuild如果您在构建文件中使用而不是为每个模块单独设置它,它会起作用。我不知道除了 之外是否有办法做到这一点 scalaVersion但是:

最后一点,您可以使用 ++ 临时切换当前用于构建的 Scala 版本。应该是发布到存储库的 Scala 版本(如 ++ 2.10.0)或 Scala 主目录的路径(如 ++ /path/to/scala/home)。有关详细信息,请参阅命令行参考。

> ++2.12.0-RC1
> test
Run Code Online (Sandbox Code Playgroud)