SBT:两个具有不同依赖性的Scala版本的跨构建项目



我有以下用例。我想为Scala 2.10和2.12构建相同的Scala项目。这样做时,我想为2.10版本指定一些依赖项,而我想将其编译为2.12。

我正在查看SBT的文档,并发现我如何将build.sbt分为单独的声明,但这些声明总是被提及为 subsodules 。就我而言,我想穿越整个应用程序 - 不是它的特定部分。

任何提示或资源都将不胜感激。

您可以根据Scala版本组装库依赖性。简化的示例,可能不会构建..:

libraryDependencies := {
  CrossVersion.partialVersion(scalaVersion.value) match {
    case Some((2, scalaMajor)) if scalaMajor == 12 =>
      libraryDependencies.value ++ Seq(
        "your.org" %% "your-lib" % "1.0")
    case Some((2, scalaMajor)) if scalaMajor == 10 =>
      libraryDependencies.value ++ Seq(
        "your.org" %% "your-lib" % "1.0" % provided)
    case _ => Seq()
  }
}

有关一个完整的示例,请参见http://github.com/scala/scala-module-dependenty-sample

最新更新