2
如何为多项目配置指定自定义staging目录?我正在使用sbt-native-packager
Scala SBT - sbt-native-packager,如何指定自定义舞台目录
下面是我的多模块配置的草图。当I期项目(sbt stage
)的文件被写入
common/target/universal/stage
app1/target/universal/stage
app2/target/universal/stage
我婉传递一个环境变量stageSuffix
这样的:sbt stage -DstageSuffix=XYZ
。这个变量应该使它阶段的项目到以下目录:
common/target/universal/stage-XYZ
app1/target/universal/stage-XYZ
app2/target/universal/stage-XYZ
我试过在commonSettings
修改stagingDirectory
,但它不是做得比较工作,我越来越喜欢“引用未定义设置”的错误。
我该如何做这项工作?
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' –