如何为SBT依赖关系回退Scala版本?

时间:2011-07-05 21:25:34

标签: scala sbt

我的build.sbt中的依赖项没有针对我正在使用的Scala 2.9.0-1的特定构建,而是我应该使用2.9.0的构建。如何配置构建,以便在不指定每个依赖项的确切版本的情况下确定构建?例如,subcut没有2.9.0-1的构建。

build.sbt的某些内容:

...
scalaVersion := "2.9.0-1"
libraryDependencies ++= Seq(
  "org.scala-tools" %% "subcut" % "0.8"
)
...

我宁愿避免这个:

  "org.scala-tools" % "subcut_2.9.0" % "0.8"

指定多个版本,按照指定的顺序尝试。

1 个答案:

答案 0 :(得分:7)

这就是我所做的:

libraryDependencies <++= (scalaVersion) { (v) =>
  val scalaVersionString = v match {
    case "2.9.0-1" => "2.9.0"
    case _ => v
  }
  Seq(
    "org.scala-tools.testing" % ("scalacheck_" + scalaVersionString) % "1.8" % "test" withSources,
    "org.specs2" %% "specs2" % "1.3" % "test" withSources,
    "com.github.dmlap" %% "sizeof" % "0.1" % "test" from "http://cloud.github.com/downloads/dmlap/jvm-sizeof/jvm-sizeof-0.1.jar"
  )
}