5

我已将这些放在当前项目根目录下的 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)

请帮我。

4

2 回答 2

5

看起来sbteclipse 需要 SBT 0.13.0,而您使用的是 0.12.4 版本。您可以按照此页面上的说明指定 SBT 版本。

其他一些注意事项:您可能想使用 Scala 2.10.3,而不是 2.10.2。

此外,指定scalaHome;也很奇怪 通常 SBT 会自动为您获取所需的 Scala jar。因此,要引导 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 上运行。您可以按照这些说明控制 SBT 版本。

要控制您的项目将运行的 Scala 版本,您可以scalaVersion<projectRoot>/build.sbt.

因此,您收到该错误是因为您使用的是 SBT 0.12.4,它使用的是 Scala 2.9.3。SBT 尝试查找 2.9.3 的 sbteclipse 插件,但它不存在,因为它需要 SBT 0.13.0 (=> Scala 2.10.3)。

于 2013-11-07T06:29:55.087 回答
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 的回答有很好的附加点。

于 2013-11-07T06:36:39.800 回答