2015-02-10 102 views
11

在Scala項目的build.sbt定義中,是否可以定義生成項目所需的最低版本的sbt?有沒有辦法在build.sbt中定義所需的sbt版本?

+0

您在build.properties中定義sbt版本。最低版本是什麼意思?任何大於最低版本的版本都很好? – mohit 2015-02-10 10:17:16

+0

@mohit是的,這是正確的。 – Bar 2015-02-10 15:19:21

回答

15

project/build.properties允許你強制sbt使用特定的版本。如果安裝了SBT的當前版本是不同的 - SBT本身將下載(如果需要)您指定有版本:

sbt.version=0.12.0 

見,Hello例如。所以實際上你可能已經在你的系統中安裝了幾個版本的sbt - 它只是放在.sbt/boot/scala-{scala.version required by this sbt}/org.scala-sbt/sbt/{sbt.version}文件夾中的罐子。 Sbt可執行文件實際上查找在project/build.properties中指定的版本或(如果未指定)系統中安裝的最高版本。

P.S.從sbt-launcher的角度來看,sbt只是一個依賴關係,與像ansi.jar這樣的不相交的其他小程序相關,因此指定[0.13.1, 0.13.8]等版本的範圍沒有多大意義,因爲它僅對衝突傳遞代碼有效。否則,指定更高版本(可以編譯)就足夠了 - 你甚至可以選擇一些你已經擁有的版本(並且以這種方式更新項目的sbt)。

+0

好吧,我可以指定一個特定的版本,但不是「大於」,是否正確? – Bar 2015-02-10 13:37:02

+1

是的。更好 - 比這裏沒有任何意義,因爲你可以在計算機上自動獲得任何版本的sbt。如果你真的需要更大的異常 - 你可以通過分析'sbtVersion.value'在'build.sbt'內部手動檢查它,但這對於sbt來說不是一種無用的方法。 – dk14 2015-02-10 15:49:45

+1

大於實際上會很好。如果你打算使用在0.13.6中引入的語法,那麼表明最低版本需要0.13.6是很好的,但如果你使用的是0.13.7,那很好(即,它是沒有必要下載0.13.6)。 – 2015-04-16 14:09:51

相關問題