我只想b
在计算 SettingKey 时覆盖 SettingKey 的值a1
。
import sbt._
import sbt.Keys._
object Build extends Build {
val a1Key = SettingKey[String]("a1", "")
val a2Key = SettingKey[String]("a2", "")
val bKey = SettingKey[String]("b", "")
lazy val rootProject = Project("P", file(".")).settings(
bKey := "XXX",
a1Key <<= bKey((x) => ">>>"+x+"<<<"),
a2Key <<= bKey((x) => ">>>"+x+"<<<")
) .settings(
bKey in a1Key := "YYY" //providing custom value in setting scope
)
}
目前的结果是
> a1
[info] >>>XXX<<<
> a2
[info] >>>XXX<<<
> b
[info] XXX
...但我的目标是看到YYY
的价值a1
:
> a1
[info] >>>YYY<<<
> a2
[info] >>>XXX<<<
> b
[info] XXX
比上面更好的实际示例是,当您只想在runtime
配置中向构建添加一些资源时,以及在打包应用程序时添加一些其他资源。例如,在开发模式和生产期间构建由服务器提供的 GWT 应用程序公共资源是不同的。resource-directories
例如,自定义设置run
和package
任务会很好。