2011-02-25 68 views
12

我知道斯卡拉摆动库中存在的Scala 2.8:斯卡拉SBT:Scala编译器版本

[info] Building project chart 1.0 against Scala 2.8.1 
[info] using sbt.DefaultProject with sbt 0.7.4 and Scala 2.7.7 

那么怎么来的,我得到这个错误:

​​

是因为SBT是使用错误版本的Scala(即2.7.7)?如果是这样,我如何配置它以使用正确的版本?

编辑:从外壳sbt reload update:回答

Dylan Lacey's answer,我做了以下文件sbt/project/build/chart.scala

import sbt._ 

class SamplesProject(info: ProjectInfo) extends DefaultProject(info) 
{ 
    val scalaSwing = "org.scala-lang" % "scala-swing" % "2.8.1" 
} 

然后我就跑。

现在事情编译!

+1

斯卡拉摆不上的Scala 2.8引入的。有一些改进,但在早期版本中可用。 – 2011-02-25 18:21:23

+0

Scala版本在project/build.properties中配置。干杯! – Janx 2011-02-25 04:12:23

回答

9

否。第2行报告的版本信息只是sbt的版本,它不会影响您的构建。

因为Swing是一个包(不是基类的一部分),我怀疑这个问题是两件事之一。或者:

  1. 您的构建文件没有指定您要使用scala-swing并且感到困惑。您可以通过添加纠正这一点,在

    val scalaSwing = "org.scala-lang" % "scala-swing" % "packageVersion"

    您/project/build/projectName.scala(感谢Janx!)

  2. 您已经将扶养但尚未下载所需的软件包。要做到这一点,你需要SBT重新加载您的项目定义,然后得到所有需要的软件包:

    sbt reload update

如果您需要选择1,你可能也需要做选择2

如果这些都不起作用,那么您可能会令您的本地存储库非常混乱。这可以通过sbt clear-lib修复,但您将重新下载所有软件包。

+0

我可能需要这样做。 'val scalaSwing = ...'行到哪里去了? – dsg 2011-02-25 04:27:21

+1

您可能想查看SBT文档,但配置依赖项的一种方法是在project/build/Project.scala中您需要导入sbt._并扩展正确的类 - 请参阅SBT文档以获取示例。 – Janx 2011-02-25 04:44:40

15

对于SBT 0.11(大概0.10),然后加入以下build.sbt将做到这一点:

libraryDependencies <+= scalaVersion { "org.scala-lang" % "scala-swing" % _ }