【问题标题】:SBT: Cross build project for two Scala versions with different dependenciesSBT:为具有不同依赖项的两个 Scala 版本交叉构建项目
【发布时间】:2017-06-25 04:31:49
【问题描述】:

我有以下用例。我想为 scala 2.10 和 2.12 构建相同的 Scala 项目。这样做时,我想指定一些提供的 2.10 版本的依赖项,而我希望在 jar 中为 2.12 编译这些依赖项。

我查看了 SBT 的文档,发现了如何将 build.sbt 拆分为单独的声明,但这些声明总是被称为子模块。就我而言,我想交叉构建整个应用程序 - 而不是它的特定部分。

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

【问题讨论】:

    标签: scala sbt cross-build


    【解决方案1】:

    您可以根据 Scala 版本组装 libraryDependencies。简化示例,可能无法构建..:

    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-dependency-sample

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2017-05-15
      • 2019-02-17
      • 2020-07-24
      相关资源
      最近更新 更多