我有一些设置的默认值。当我调用distrib:package
(distrib
是新配置)或distrib
任务(默认配置)时,我想覆盖此设置。
此设置是针对某些子项目设置的,项目依赖于它们。
更具体:
我使用xsbt-web-plugin在war文件中打包服务器。在我有一个像
的设置webappPostProcess := { webappDir => (webstart in guiClient).value;
IO.copy((webstartOutput in client).value, webappDir / "client")
}
用于构建WebStart客户端并将其复制到war文件目录。在guiClient
项目中,我有一个设置useTsa := false
(来自自定义插件)。我想在发布服务器时将此设置设置为true。
目前我有lazy val Distrib = config("distrib").extend(Compile)
和webstartSettings ++ Seq(useTsa := false) ++ inConfig(Distrib)(webstartSettings ++ Seq(useTsa := true))
。它适用于package
(useTsa
为false)和distrib:package
(useTsa
为真)。但在distrib:publish
设置中useTsa
为假。
答案 0 :(得分:2)
如果要重新设置设置,则必须.and("field1").plus("field2")
项目。在任务中是不可能的,并且您需要一个(几乎)一个接受reload
并返回新State
的函数的命令。您可以在此处将设置设置为新值。
继续阅读Commands。
如果你想为每个配置设置不同的设置值,就像这样简单(在State
中):
build.sbt
然后在shell中:
lazy val abc = settingKey[String]("A sample ABC setting")
abc in Compile := "abc in Compile"
abc in Test := "abc in Test"
阅读Keys。