2010-12-31 3 views
4

розжиг консоли SBT Читает:Как изменить версию Scala, с которой работает sbt?

[info] Building project AYLIEN 1.0 against Scala 2.8.1 
[info] using MyProject with sbt 0.7.4 and Scala 2.7.7 

Как я могу сделать это использовать MyProject с SBT 0.7.4 и Scala 2.8.1? Пожалуйста, обратите внимание на то, что я не спрашиваю о версии Scala, которая используется для создания моего проекта (это, как вы можете видеть, 2.8.1), но я скорее хочу сделать sbt использовать MyProject с Scala 2.8.1. По-видимому, sbt использует свою собственную версию scala для работы с определением проекта (здесь MyProject), который отличается от того, который он использует для создания проекта! или, может быть, я что-то пропустил ...?

+1

Вы правы. Но какая разница, в какой версии он работает? – pedrofurla

+0

Вы правы. Я ошибался под впечатлением, что некоторые проблемы были укоренены в этом конвертирующем устройстве sbt/scala, но я был неправ. –

ответ

6

SBT 0.7. * Не работает с Scala 2.8. * для вашего проекта. Mark Harrah в настоящее время работает над следующей версией SBT, которая будет работать с 2.8. *. Это означает, что вы не можете использовать любые функции или функциональные возможности Scala, которые были добавлены после Scala 2.7.7 в вашем определении проекта или плагинах. Сам проект можно использовать 2.8. *.

+0

Я использовал sbt 0.7.4 для компиляции проекта scala 2.8.1 сегодня утром. sbt использует 2.7.x для запуска sbt, но он может компилироваться против 2.8.x, просто отлично смотря на ответ olle kullberg для практического использования. –

+0

Извините, я должен был быть более ясным - ключевая фраза в моем ответе - «для определения вашего проекта». В вашем проекте можно использовать Scala 2.8. * Просто отлично. Но вы не можете использовать какие-либо функции Scala, добавленные за 2.7.7 в фактическое определение проекта (т. Е. Ваши Project.scala или плагины и т. Д.). –

+0

Я отредактировал свой ответ, чтобы сделать его более понятным. –

7

Я вижу вашу обеспокоенность по поводу того, что SBT все еще использует внутреннюю часть 2.7.7, но это не имеет большого значения, поскольку SBT загружает эту версию самостоятельно. Вам не нужно устанавливать 2.7.7 или что-то еще, просто забудьте об этом и притворите, что ваша среда чиста Scala 2.8.

Конфигурационный файл, содержащий настройки версии SBT: project/build.properties. Содержание выглядит следующим образом:

project.organization=com.ab.web 
project.name=cool_proj 
sbt.version=0.7.4 
project.version=1.0 
build.scala.versions=2.8.0 
project.initialize=false 

Если вы хотите, чтобы перейти к следующей версии SBT, просто измените 0.7.4 эту версию и SBT будет обновляться. В конечном счете SBT будет использовать некоторую другую версию Scala внутри, но это не имеет значения для пользователя.

Смежные вопросы