我已将这些文件放在当前项目根目录下的build.sbt文件中
scalaHome := Some(file("/Users/ddam/scala-2.10.2"))
scalaVersion := "2.10.2"
我使用
运行了sbt$ sbt --version
sbt launcher version 0.12.4
但是,当某个特定的依赖关系无法解决时,我看到sbt和scala的错误版本
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] com.typesafe.sbteclipse:sbteclipse-plugin:2.4.0 (sbtVersion=0.12, scalaVersion=2.9.2)
请帮帮我。
答案 0 :(得分:5)
看起来像sbteclipse requires SBT 0.13.0,您使用的是版本0.12.4。 您可以按照this page上的说明指定SBT版本。
其他一些注意事项:您可能希望使用Scala 2.10.3,而不是2.10.2。
另外,指定scalaHome
很奇怪;通常SBT会自动为您取得所需的Scala罐子。
因此,要引导Scala环境,您需要安装的所有内容都是SBT和JDK。
编辑:(解决以下评论): 使用SBT构建代码时,实际上可能使用两个不同版本的Scala。 有SBT版本(运行构建系统的Scala版本),以及项目代码的版本(运行代码的Scala版本)。
SBT的Scala版本由您使用的SBT版本决定。 如果使用0.12.4,SBT将在Scala 2.9.3上运行。 如果使用0.13.0,SBT将在Scala 2.10.3上运行。 您可以按照these instructions控制SBT版本。
要控制项目运行的Scala版本,您可以在scalaVersion
中设置<projectRoot>/build.sbt
。
因此,您正在使用SBT 0.12.4(使用Scala 2.9.3),因此会收到该错误。 SBT试图找到2.9.3的sbteclipse插件,但它不存在,因为它需要SBT 0.13.0(=&gt; Scala 2.10.3)。
答案 1 :(得分:0)
您似乎已正确指定使用Scala 2.10.2编译项目。
sbt 0.12.4总是使用Scala 2.9.x来编译构建文件(即build.sbt
和project/
下的内容)。这意味着sbt 0.12.x的插件也必须针对2.9.x进行编译,这解释了你所看到的内容。
sbteclipse 2.4.0需要sbt 0.13。如果你想继续使用sbt 0.12.4,请尝试使用sbteclipse 2.2.0。
emchristiansen的答案有很好的补充点。