Как я могу указать настраиваемый промежуточный каталог для многопроектной конфигурации? Я использую sbt-native-packager
Scala SBT - sbt-native-packager, как указать настраиваемый каталог столов
Ниже представлен эскиз моей конфигурации с несколькими модулями. Когда я стадия этого проекта (sbt stage
) файлы записываются в
common/target/universal/stage
app1/target/universal/stage
app2/target/universal/stage
я бледный передать переменный ENV stageSuffix
так: sbt stage -DstageSuffix=XYZ
. Эта переменная должна сделать этап проекта в следующих каталогах:
common/target/universal/stage-XYZ
app1/target/universal/stage-XYZ
app2/target/universal/stage-XYZ
Я попытался модифицировать stagingDirectory
в commonSettings
, но это не совсем работа, я получаю сообщение об ошибке, как «Ссылки на неопределенные настройки».
Как это сделать?
val stageSuffix = sys.props.getOrElse("stageSuffix", ".")
val commonSettings = Seq(
stagingDirectory := stagingDirectory.value/stageSuffix, // this makes it fail
libraryDependencies ++= Seq(...))
val common = project.in(file("common"))
.enablePlugins(JavaAppPackaging)
.settings(commonSettings: _*)
val app1 = project.in(file("app1"))
.enablePlugins(JavaAppPackaging)
.settings(mainClass in Compile := Some("app1.Main"))
.dependsOn(common)
.settings(commonSettings: _*)
.settings(libraryDependencies ++= Seq(...))
val app2 = project.in(file("app2"))
.enablePlugins(JavaAppPackaging)
.settings(mainClass in Compile := Some("app2.Main"))
.dependsOn(common)
.settings(commonSettings: _*)
.settings(libraryDependencies ++= Seq(...))
val main = project.in(file("."))
.dependsOn(common, app1, app2)
.aggregate(common, app1, app2)
.settings(commonSettings: _*)
Была ошибка «Ссылки на неопределенные настройки» Настройки делая ссылку на 'StagingDirectory '? Знание того, какие настройки конкретно имеют проблемы, поможет. – metasim
Да, удаление этой настройки позволило бы пройти сборку, но в стандартном месте размещения: 'target/universal/stage' –