我用sbt搭建scala项目时,scala的版本有什么关系?
What's the relationship of the versions of scala when I use sbt to build a scala project?
我正在使用 SBT 1.x.There 构建一个 scala 项目(在 scala 2.11 中编写)1.x.There 有几个 "versions of scala" 让我感到困惑。
SBT 1.x => scala 2.12
SBT plugin => scala 2.x
My project => scala 2.11
请帮我弄清楚 them.And SBT 在编译时如何区分它们或 运行 项目之间有什么区别或关系?
sbt 本身及其插件使用的 Scala 版本完全独立于用于编译项目中代码的 Scala 版本。 sbt 版本决定了它使用的 Scala 版本:
- sbt 0.13 使用 Scala 2.10
- sbt 1.x 使用 Scala 2.12
您可以在project/build.properties
中设置此版本,例如:
sbt.version = 1.1.1
您要使用的 sbt 插件必须与给定版本的 sbt 兼容(许多 cross-compiled 具有 0.13 和 1.x)。
要设置要用于项目代码的 Scala 版本,请在 build.sbt
:
中使用 scalaVersion
设置
scalaVersion := "2.12.4"
同样,它独立于 sbt 的版本。您还可以 cross-compile 多个 Scala 版本的代码:
scalaVersion := "2.12.4"
crossScalaVersions := Seq("2.11.12", "2.12.4")
那么如果你在sbt中运行 compile
,它会使用Scala 2.12.4,如果你运行 +compile
,它会先用Scala编译2.11.12,然后是 2.12.4。有关 Cross-building.
的更多信息,请参阅 sbt 文档
我正在使用 SBT 1.x.There 构建一个 scala 项目(在 scala 2.11 中编写)1.x.There 有几个 "versions of scala" 让我感到困惑。
SBT 1.x => scala 2.12
SBT plugin => scala 2.x
My project => scala 2.11
请帮我弄清楚 them.And SBT 在编译时如何区分它们或 运行 项目之间有什么区别或关系?
sbt 本身及其插件使用的 Scala 版本完全独立于用于编译项目中代码的 Scala 版本。 sbt 版本决定了它使用的 Scala 版本:
- sbt 0.13 使用 Scala 2.10
- sbt 1.x 使用 Scala 2.12
您可以在project/build.properties
中设置此版本,例如:
sbt.version = 1.1.1
您要使用的 sbt 插件必须与给定版本的 sbt 兼容(许多 cross-compiled 具有 0.13 和 1.x)。
要设置要用于项目代码的 Scala 版本,请在 build.sbt
:
scalaVersion
设置
scalaVersion := "2.12.4"
同样,它独立于 sbt 的版本。您还可以 cross-compile 多个 Scala 版本的代码:
scalaVersion := "2.12.4"
crossScalaVersions := Seq("2.11.12", "2.12.4")
那么如果你在sbt中运行 compile
,它会使用Scala 2.12.4,如果你运行 +compile
,它会先用Scala编译2.11.12,然后是 2.12.4。有关 Cross-building.