SBT - 在单个项目中使用两个版本的库



我有一个项目,其中包含一堆为 Scalatest 1.x 编写的测试,这些测试使用 ShouldMatchers 类,该类在 2.x 版本中已弃用。 展望未来,我想将版本 2 用于新测试,但这意味着我必须重构所有现有测试(我可以这样做,但这需要一些时间)。

与此同时,在SBT中是否有办法针对Scalatest 1.x编译现有类,针对Scalatest 2.0编译新类?

或者更一般地说,针对与其他类不同的库版本编译项目中的某些类?(我知道这可能是一个相当可怕的想法。

您可以创建两个依赖的子项目,每个版本的scala-test对应一个。

lazy val root = project.in(file("."))
lazy val oldTests = project.in(file("old-tests"))
  .dependsOn(root)
  .settings(
    libraryDependencies += "org.scalatest" %% "scalatest" % "1.9.1" % "test"
  )
lazy val newTests = project.in(file("new-tests"))
  .dependsOn(root)
  .settings(
    libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test"
  )

最新更新