2013-05-06 3 views
17

Я новичок в Scala/SBT, поэтому, пожалуйста, будьте нежны, но я пытаюсь проделать свой путь через SBT «Getting Started», и я заметил несоответствие между моим оборудованием, установленным scala и sbt. Когда я запускаю REPL для scala напрямую, он сообщает себя как Scala 2.10.1, чего я ожидаю.scala is 2.10.1, но sbt console нет?

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 

Когда я запускаю REPL через SBT, 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, размещенную в моем блоке dev. Где он получает 2.9.2 и как я могу использовать его 2.10.1?

Оба scala и sbt были установлены через варево, но я не думаю, что это действительно имеет значение. Версия 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» оттуда, но безрезультатно. Я обнаружил, что могу принудительно выполнить версию Scala через файл build.sbt как scalaVersion: = "2.10.1". Я по-прежнему удивлен тем, что sbt использует версию Scala, отличную от той, которую я развернул на своей машине. –

+2

Invoke sbt без аргументов. В командной строке введите ++ 2.10.1. Затем введите «console» для входа в консоль. – trenobus

+0

Это делает трюк –

19

Sbt загружает scala, не обязательно должен иметь установленный.

Если вы хотите, чтобы определить что-то глобальное использование файл ~/.sbt/global.sbt

В global.sbt вы можете вставить scalaVersion: = «2.10.1» и если вы хотите использовать локальную версию установленного определим также scalaHome: = Some (файл ("/ главная/IRAKLIS/Apps/Scala-2.10.1"))

Для получения более детальной информации посетите SBT документации (link)

+0

Это тоже работает. Я прорабатываю документацию. –

3

Установка scalaVersion в вашем build.sbt или Build.scala бы поможет вам исправить версию scala для вашего текущего проекта. Read here

name := "Sample" 

scalaVersion := "2.11.0" 

version := "1.1-RELEASE" 
Смежные вопросы