2013-05-06 28 views
17

我是新來的Scala/SBT,所以請保持溫柔,但我試圖通過SBT「入門」工作,我注意到我的brew安裝scala和sbt工具之間存在差異。當我直接啓動scala的REPL時,它將自己報告爲Scala 2.10.1,這正是我所期望的。斯卡拉是2.10.1但sbt控制檯不是?

bobk-mbp:work bobk$ scala 
Welcome to Scala version 2.10.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_17). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> :quit 

當我通過SBT啓動REPL時,REPL斷言它是2.9.2?!?

bobk-mbp:work bobk$ sbt console 
[info] Set current project to default-690573 (in build file:/Users/bobk/work/) 
[info] Starting scala interpreter... 
[info] 
Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_17). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> :quit 

這是怎麼回事?我期待構建工具使用我的開發箱上託管的scala環境。它在哪裏得到2.9.2,我如何得到它使用2.10.1?

scala和sbt都是通過brew安裝的,但我認爲這並不重要。該SBT版本似乎是0.12.3

bobk-mbp:work bobk$ sbt --version 
sbt launcher version 0.12.3 

回答

16

如果你不帶任何參數SBT開始:

sbt 
> ++ 2.10.1 
> console 

應該給你的Scala 2.10.1該會話。我不知道如何將它作爲所有sbt會話的默認設置,而無需重建sbt本身。

+1

沒有快樂。命令行中沒有[sbt console ++ 2.10.1]和[sbt ++ 2.10.1 console]。我想,也許我會進入sbt,然後從那裏嘗試'++ 2.10.1',但無濟於事。我發現我可以通過build.sbt文件強制Scala版本爲scalaVersion:=「2.10.1」。我仍然感到驚訝的是,sbt使用的是我在我的機器上部署的版本以外的Scala版本。 – 2013-05-06 22:34:20

+2

無參數調用sbt。在提示符處輸入++ 2.10.1。然後輸入'console'進入控制檯。 – trenobus 2013-05-06 22:36:54

+0

這就是竅門 – 2013-05-06 23:46:49

19

Sbt下載scala並不需要安裝一個。

如果要定義一種全球使用〜/名.bst/global.sbt

在global.sbt可以插入scalaVersion:=「2.10.1」,如果你想使用本地安裝的版本還定義scalaHome:=一些(文件( 「/家/伊拿克里斯/應用/斯卡拉-2.10.1」))

有關更多詳情,請SBT文件(link

+0

This works too。我正在通過文檔工作。 – 2013-05-06 23:49:09

3

build.sbtBuild.scala將設置scalaVersion幫助您修復當前項目的scala版本。 Read here

name := "Sample" 

scalaVersion := "2.11.0" 

version := "1.1-RELEASE"