簡體   English   中英

Scala SBT:scala編譯器版本

[英]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是一個包(不是基類的一部分),我懷疑問題是兩件事之一。 或者:

  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修復,但是您將重新下載所有包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM