2011-02-25 66 views
12

我知道斯卡拉擺動庫中存在的Scala 2.8:斯卡拉SBT:Scala編譯器版本

[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 

那麼怎麼來的,我得到這個錯誤:

​​

是因爲SBT是使用錯誤版本的Scala(即2.7.7)?如果是這樣,我如何配置它以使用正確的版本?

編輯:從外殼sbt reload update:回答

Dylan Lacey's answer,我做了以下文件sbt/project/build/chart.scala

import sbt._ 

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

然後我就跑。

現在事情編譯!

+1

斯卡拉擺不上的Scala 2.8引入的。有一些改進,但在早期版本中可用。 – 2011-02-25 18:21:23

+0

Scala版本在project/build.properties中配置。乾杯! – Janx 2011-02-25 04:12:23

回答

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

+0

我可能需要這樣做。 'val scalaSwing = ...'行到哪裏去了? – dsg 2011-02-25 04:27:21

+1

您可能想查看SBT文檔,但配置依賴項的一種方法是在project/build/Project.scala中您需要導入sbt._並擴展正確的類 - 請參閱SBT文檔以獲取示例。 – Janx 2011-02-25 04:44:40

15

對於SBT 0.11(大概0.10),然後加入以下build.sbt將做到這一點:

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