如何更改sbt使用的Scala版本?

如何更改sbt使用的Scala版本?,scala,sbt,Scala,Sbt,启动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 我如何使它与sbt 0.7.4和Scala 2.8.1一起使用MyProject?请注意,我不是在询问用于构建我的项目的Scala版本(如您所见,它是2.8.1),而是想让sbt将MyProject与Scala 2.8.1结合使用。显然,sb

启动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

我如何使它与sbt 0.7.4和Scala 2.8.1一起使用MyProject?请注意,我不是在询问用于构建我的项目的Scala版本(如您所见,它是2.8.1),而是想让sbt将MyProject与Scala 2.8.1结合使用。显然,sbt使用自己的scala版本来处理项目定义(这里是MyProject),这与它实际构建项目时使用的版本不同!或者我错过了什么

SBT 0.7.*不适用于Scala 2.8.*项目定义
Mark Harrah目前正在开发SBT的下一个版本,该版本将与2.8*配合使用。这意味着您不能在项目定义或插件中使用Scala 2.7.7之后添加的任何Scala特性或功能。您的项目本身可以免费使用2.8.*.

我可以看出您对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版本,但这对用户来说并不重要。

你说得对。但是它在哪个版本上运行又有什么区别呢?你是对的。我错误地认为一些问题源于sbt/scala转换,但我错了。今天早上我用sbt 0.7.4编译了一个scala 2.8.1项目。sbt使用2.7.x来运行sbt,但它可以针对2.8.x进行编译。很好,请参阅olle kullberg的答案了解操作方法。对不起,我应该更清楚-我回答中的关键短语是“用于您的项目定义”。您的项目可以使用Scala 2.8。*很好。但是您不能在项目的实际定义中使用2.7.7之后添加的任何Scala特性(即,您的project.Scala或插件等)。