SBT: кросс-сборка для двух версий Scala с разными зависимостями
У меня есть следующий вариант использования. Я хотел бы построить один и тот же проект Scala для Scala 2.10 и 2.12. При этом я хотел бы указать некоторые зависимости для версии 2.10, как предусмотрено, тогда как я хотел бы, чтобы они были скомпилированы в jar для 2.12.
Я смотрел на документы SBT и нашел, как я могу разделить build.sbt
в отдельные объявления, но они всегда упоминаются как подмодули. В моем случае я хотел бы создать кросс-сборку всего приложения, а не отдельных его частей.
Любые советы или ресурсы будут оценены.
1 ответ
Решение
Вы можете собрать библиотечные зависимости в зависимости от версии 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-dependency-sample