SBT跨建筑 - 为不同的scala版本选择不同的库版本

the*_*eon 5 scala sbt

在交叉构建时是否可以将SBT配置为使用完全不同的库版本,具体取决于正在构建项目的scala版本?

例如:

  • 使用Scala构建时2.9.2我想使用"org.scalatest" % "scalatest_2.9.2" % "2.0.M5" % "test"
  • 使用scala构建时2.10.0我想使用"org.scalatest" % "scalatest_2.10.0-RC5" % "2.0.M5-B1" % "test"

Pau*_*her 8

这样的事情应该有效:

libraryDependencies <+= scalaVersion(scalatestDependency(_))

def scalatestDependency(scalaVersion: String) = scalaVersion match {
  case "2.9.2" => "org.scalatest" % "scalatest_2.9.2" % "2.0.M5" % "test"
  case "2.10.0" => "org.scalatest" % "scalatest_2.10.0-RC5" % "2.0.M5-B1" % "test"
}
Run Code Online (Sandbox Code Playgroud)

我以为你实际上意味着库版本应该是另一种方式?:-)

您可以在ScalaMock 2版本中看到此主题的变体.

  • 好吧,如果你想在`.sbt`文件中将两者合并在一起:`libraryDependencies <+ = scalaVersion {case"2.9.2"=> ...}` (4认同)