[英]Scala SBT: scala compiler version
我知道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"
}
然后我跑了:從shell進行sbt reload update
。
現在事情編譯!
對於sbt 0.11(並且可能是0.10),然后將以下內容添加到build.sbt
將執行此操作:
libraryDependencies <+= scalaVersion { "org.scala-lang" % "scala-swing" % _ }
不行。第2行報告的版本信息只是sbt構建的版本信息,它不會影響您的構建。
因為Swing是一個包(不是基類的一部分),我懷疑問題是兩件事之一。 或者:
您的構建文件未指定您要使用scala-swing並且感到困惑。 您可以通過添加:
val scalaSwing = "org.scala-lang" % "scala-swing" % "packageVersion"
在/project/build/projectName.scala中(感謝Janx!)
您已添加了依賴性但尚未下載所需的包。 為此,您需要sbt重新加載項目定義,然后獲取所有必需的包:
sbt reload update
如果您需要選項1,您可能還需要選項2。
如果這些都不起作用,你可能會對你的本地存儲庫造成可怕的困惑。 這可以通過sbt clear-lib
修復,但是您將重新下載所有包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.