如何更改 sbt 项目的 Scala 版本?

Posted

技术标签:

【中文标题】如何更改 sbt 项目的 Scala 版本?【英文标题】:How to change Scala version for sbt project? 【发布时间】:2011-02-22 16:49:26 【问题描述】:

如何在 sbt 项目中更改 Scala 版本?

我希望SBT检查系统的Scala版本是否正确,如果不正确,请下载。

【问题讨论】:

在新的 sbt 1.x 中,在 shell 中:set scalaVersion := "2.13.1",或在 build.sbt:scalaVersion := "2.13.1" 【参考方案1】:

xsbt(0.10+,包括最新的0.13.7)

build.sbt 中的 scalaVersion 更改为您的项目应使用的任何 Scala 版本 - 请参阅 .sbt build definition。

scalaVersion := "2.10.1"

sbt:

如RunningSBT 中所述,您可以:

您可以使用 ++<version> 临时切换到另一个版本的 Scala。 此版本不必列在您的 build.scala.versions 属性中,但它必须位于存储库中或者是您定义的 local Scala 版本。

但CrossBuild page 更适合您的需求,因为它实际展示了如何更改build.scala.versions 属性。

所以你应该可以

set build.scala.versions 2.7.7
reload
set build.scala.versions 2.8.0.RC2
reload

并且每次触发编译时使用不同的 Scala 版本。

【讨论】:

@sheki:好点。我添加了用于更改用于构建 Scala 项目的 Scala 版本的 xsbt 配置。 @sheki:将我的 build.sbt 视为一个更完整的示例,说明您通常在使用 xsbt 的 Scala 项目中所做的更改:github.com/VonC/xsbt-template/blob/master/build.sbt 一条我发现有用的信息:如果您有一个多项目,您可以在主 .sbt 文件中使用 scalaVersion in ThisBuild := "2.10.1" 来传播所有子项目中的设置。 @CristianVrabie 当 scalaVersion 在根项目的 build.sbt 中定义并聚合其他子模块时,它也可以正常工作。你不需要in ThisBuild

以上是关于如何更改 sbt 项目的 Scala 版本?的主要内容,如果未能解决你的问题,请参考以下文章

scala 参考 sbt 项目版本

如何在scala中自动重新运行sbt项目

如何通知 SBT 使用插件的特定 scala 版本?

更改后如何强制 IntelliJ IDEA 从 build.sbt 重新加载依赖项?

如何强制 Scala 使用不同的库版本?

如何通知SBT使用插件的特定scala版本?