У меня есть мультипроект sbt
build и я хочу создать несколько команд publi sh для публикации различных подмножеств проектов.
Для скорости я обычно хочу публиковать sh только проекты a
и b
для двух Scala версий, но иногда (например, при выпуске версии) я хочу опубликовать sh все зависимости, включая проекты c
и d
.
build.sbt
:
val scala212 = "2.12.10"
val scala211 = "2.11.8"
val supportedScalaVersions = Seq(scala212, scala211)
...
lazy val global = project
.in(file("."))
.settings(crossScalaVersions := Nil, ...)
.aggregate(a, b)
lazy val a = project(...)
lazy val b = project(...)
lazy val c = project(...)
lazy val d = project(...)
...
Обратите внимание, что для crossScalaVersion установлено значение nil
в агрегирующем проекте, как рекомендовано в ссылке sbt
sbt +publish
опубликует sh только проекты a
и b
в обоих случаях. Если мне нужно опубликовать sh всех зависимостей, я публикую sh их отдельно из консоли sbt.
sbt> +publish; +c/publish; +d/publish
Как создать одну команду (+publishAll
), которая опубликует sh все подпроекты в обеих Scala версиях с сохранением по умолчанию publish
только публикация команды a
и b
?