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

iPh*_*Dev 6 scala sbt

build.sbt已经设置好了

scalaVersion := "2.11.7"
Run Code Online (Sandbox Code Playgroud)

但是,每当我运行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
Run Code Online (Sandbox Code Playgroud)

一开始,实际上它的版本是2.10.5

Getting Scala 2.10.5 (for sbt)...
Run Code Online (Sandbox Code Playgroud)

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

Jac*_*ski 6

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
Run Code Online (Sandbox Code Playgroud)

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

ps sbt内部使用的Scala版本与您可能已为Scala/sbt项目下载的版本完全不同.