2016-08-13 45 views
2

的build.sbt已经设置为什么sbt会下载与build.sbt不同的Scala版本?

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。

+0

你可以发布完整的build.sbt定义吗?你是如何在你的机器上安装sbt的? –

+2

SBT本身需要Scala来编译你的构建,它不一定和用于编译项目源的那个一样。检查您的SBT版本。 – cchantep

+0

sbt版本0.13.12,我刚通过“brew sbt install”第一次在我的macbook上安装了它。在此之前,我安装了自制软件,导致我的MacBook没有brew命令。然后我试图导入intellij中的coursera教程中的项目,但即使build.sbt已经将scalaVersion设置为2.11.7 – iPhoneJavaDev

回答

5

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。你不应该担心这一点。只要接受它:)

p.s. sbt在内部使用的Scala版本与您为Scala/sbt项目已经下载的版本完全不同。

+0

是与从scala-lang.org下载的scala不同的sbt scala版本? – dauruy

+0

否。请参阅答案中的更新。 –

相关问题