12

我知道 scala swing 库存在于 scala 2.8 中:

[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

那么我怎么会收到这个错误:

[error] /src/main/scala/Chart.scala:2: value swing is not a member of package scala
[error] import scala.swing.Panel

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

编辑:回答

按照Dylan Lacey 的回答,我制作了以下文件sbt/project/build/chart.scala

import sbt._

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

然后我跑了:sbt reload update从外壳。

现在事情编译了!

4

2 回答 2

15

对于 sbt 0.11(可能是 0.10),然后添加以下内容即可build.sbt

libraryDependencies <+= scalaVersion { "org.scala-lang" % "scala-swing" % _ }
于 2011-08-27T11:35:09.763 回答
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,但您将重新下载所有包。

于 2011-02-25T04:10:23.887 回答