2016-08-13 43 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

否。請參閱答案中的更新。 –

相關問題