Swing Scala SBT:Scala编译器版本

Swing Scala SBT:Scala编译器版本,swing,scala,sbt,Swing,Scala,Sbt,我知道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 scal

我知道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)?如果是,我如何配置它以使用正确的版本

编辑:回答

接下来,我创建了以下文件
sbt/project/build/chart.scala

import sbt._

class SamplesProject(info: ProjectInfo) extends DefaultProject(info)
{
   val scalaSwing = "org.scala-lang" % "scala-swing" % "2.8.1"
}
然后我从shell运行:
sbt-reload-update


现在一切都好了

否。第2行报告的版本信息只是sbt生成时使用的版本,不会影响您的生成

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

  • 您的构建文件没有指定您要使用scala swing,这让您感到困惑。您可以通过添加以下内容来更正此问题:

    val scalaSwing=“org.scala lang”%”scala swing“%”packageVersion“

    在您的/project/build/projectName.scala中(谢谢Janx!)

  • 您已添加依赖项,但尚未下载所需的包。为此,您需要sbt重新加载项目定义,然后获取所有必需的包:

    sbt重新加载更新

  • 如果您需要选项1,您可能还需要执行选项2

    如果这两种方法都不起作用,你可能会把你当地的负责人搞糊涂了。这可以通过
    sbt clear lib
    修复,但随后您将重新下载所有软件包。

    对于sbt 0.11(大概是0.10),然后将以下内容添加到
    构建中。sbt
    将完成此操作:

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

    libraryDependencies我可能需要这样做。
    val scalaSwing=…
    行在哪里?您可能想查看SBT文档,但配置依赖项的一种方法是在project/build/project.scala中,您需要导入SBT.\uu并扩展正确的类-请参阅SBT文档以获取示例。scala版本在project/build.properties中配置。干杯Scala 2.8中没有引入Scala Swing。有一些改进,但在早期版本中可以使用。