scala - 为什么 sbt 下载的 Scala 版本与 build.sbt 中的版本不同?

标签 scala sbt

build.sbt 已经设置

scalaVersion := "2.11.7"

但是,每当我在 build.sbt 所在的位置运行 sbt 时,我总是会收到此错误
org.scala-lang#scala-library;2.10.5: configuration not found in
org.scala-lang#scala-library;2.10.5: 'master(compile)'. Missing
configuration: 'compile'. It was required from org.scalaz#scalaz-
effect_2.10;7.1.0 compile

一开始,它实际上是获取版本 2.10.5
Getting Scala 2.10.5 (for sbt)...

现在我无法继续。我在我的 macbook 中运行。

最佳答案

sbt 和您的应用程序(由 sbt 管理)对 Scala 有不同的要求。它们都是 Scala 应用程序,因此它们肯定需要 Scala 运行时。

sbt 使用 Scala 的固定版本,并且您可以在项目中安装的所有插件都应该与该特定 Scala 版本兼容。您不能更改 sbt 的 Scala 版本。它被“埋没”在代码中,而不是用户应该改变的东西。

然而,您的 Scala/sbt 项目可以使用他们想要的任何 Scala 项目。这是一个单独的问题。您可以使用 build.sbtscalaVersion设置您的 Scala 版本。

话虽如此,一开始,sbt 总是会下载自己的内部依赖项,包括 Scala。然后保存在 ~/.sbt/boot .

➜  $ ls -l ~/.sbt/boot
total 424
-rw-r--r--  1 jacek  staff       0 13 sie 20:22 sbt.boot.lock
drwxr-xr-x  4 jacek  staff     136  6 wrz  2015 scala-2.10.4
drwxr-xr-x  4 jacek  staff     136  2 wrz  2015 scala-2.10.5
drwxr-xr-x  4 jacek  staff     136 31 sty  2016 scala-2.10.6
drwxr-xr-x  4 jacek  staff     136  3 lis  2015 scala-2.11.5
-rw-r--r--  1 jacek  staff  217029 20 lip 10:37 update.log

根据您使用的 sbt 版本,您可能会看到正在下载的不同 Scala 版本,但它们是 sbt 的内部版本。你不应该担心。只要接受它:)

附言sbt 内部使用的 Scala 版本与您可能已经为 Scala/sbt 项目下载的版本没有任何不同。

关于scala - 为什么 sbt 下载的 Scala 版本与 build.sbt 中的版本不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934642/

相关文章:

scala - 如何将 scala fs2 流转换为字符串?

scala - 如何将 com.typesafe.sbt.* 依赖项添加到我的项目中?

scala - SBT项目java.io.FileNotFoundException:FileNotFoundException:HADOOP_HOME未设置

scala - SBT Assembly 从另一个 JAR 中删除类

scalajs : multiple apps in one project?

scala - 使用 vs 代码,如何让 Scala 格式工作并格式化我的代码?

java - 谁能推荐一个 Java 或 Scala DOS/基于终端的 UI 框架?

scala - 为什么定义默认参数值时需要输入?

java - 将 Scala 缓冲区转换为 Java ArrayList

scala - 如何让 sbt 停止尝试对每个构建拉取最新的传递范围依赖