开发者

Scala SBT: scala compiler version

I know that the scala swing libraries are present in 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

So how come I'm getting this erro开发者_如何学Pythonr:

[error] /src/main/scala/Chart.scala:2: value swing is not a member of package scala
[error] import scala.swing.Panel

Is it because SBT is using the wrong version of scala (i.e. 2.7.7)? If so, how do I configure it to use the correct version?

EDIT: Answer

Following Dylan Lacey's answer, I made the following file sbt/project/build/chart.scala:

import sbt._

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

Then I ran: sbt reload update from the shell.

Now things compile!


For sbt 0.11 (and presumably 0.10) then adding the following to build.sbt will do it:

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


No. The version information reported on line 2 is just the version sbt was built with, it won't effect your build.

Because Swing is a package (Not part of the base classes) I suspect the problem is one of two things. Either:

  1. Your build file doesn't specify that you want to use scala-swing and is getting confused. You can correct this by adding:

    val scalaSwing = "org.scala-lang" % "scala-swing" % "packageVersion"

    in your /project/build/projectName.scala (Thanks Janx!)

  2. You've added the dependancy but have not yet downloaded the required package. To do this, you need sbt to reload your project definition and then get all required packages:

    sbt reload update

If you need option 1, you'll likely need to also do option 2.

If neither of these work, you may have confused your local respository horribly. That can be fixed with a sbt clear-lib, but you will then re-download all your packages.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜