Как я могу указать настраиваемый промежуточный каталог для конфигурации нескольких проектов? Я использую 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
? Знание, в каких настройках конкретно возникли проблемы, поможет. - person metasim   schedule 14.06.2016target/universal/stage
- person ak.   schedule 15.06.2016