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' –