为什么 sbt 给 "object swing is not a member of package scala" for import scala.swing?

Why does sbt give "object swing is not a member of package scala" for import scala.swing?

Sbt 版本:0.13.8

Scala 版本:2.11.2

当使用 scalac 编译我的 scala swing 应用程序时,它只是编译。 但是,当使用 SBT 编译相同的文件时,它会提供以下错误:

[error] my/file/path.scala:1: object swing is not a member of package scala
[error] import scala.swing._

我将 scala 版本添加到我的 build.sbt。我 甚至 配置了 scalaHome(我认为它永远不应该在 build.sbt 中)。

build.sbt中的行:

scalaVersion := "2.11.2"
scalaHome := Some(file("/my/scala/location/opt/scala-2.11.2/"))

/my/scala/location/opt/scala-2.11.2/lib

目录包含 sacla swing 库:scala-swing_2.11-1.0.1.jar ,这也是 scalac 简单编译的原因。

有些人可能会说我应该在 build.sbt 中将 swing 添加到我的 libraryDependencies 中,但它不应该,因为它是核心库的一部分并且配置了 scalaHome。

如何让 sbt 以自然的方式注意到 swing 核心库?

奖金问题: 如何在 build.sbt 之外配置 scalaHome( 而无需 破解 sbt jar 本身)或更好,它是否注意到 SCALA_HOME 环境变量?

从 2.11 开始,scala swing 包不再列在 scala's standard library api and in fact is described in its own README 作为 "mostly unsupported"。

我认为您应该期望将其作为依赖项包含在内。

另见 What's wrong with my scala.swing?