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