2013-05-06 87 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"