を入力として受け取るタスクlazy val task = TaskKey[Unit]
がありlazy val setting = SettingKey[String]
ます。また、3 つの異なる独立した構成スコープ ( config("dev")
、config("stage")
、config("prod")
) と、構成スコープごとにbuild.sbt
異なる値を指定するファイル( ... ) もあります。setting
setting in stage := "foo"
task
configスコーププレフィックスを使用し て呼び出すと、タスクがそれぞれのconfigスコープの値を使用するようになると予想しました(たとえば>dev:task
、タスクにsetting
からの値を使用させdev
、コマンドを使用すると、タスクにからの値を>stage:task
使用させます...)。ただし、これは機能しないようです。setting
stage
task
特定の構成スコープの設定を強制的に使用するにはどうすればよいですか?
build.sbt:
setting := "default setting"
setting in stage := "stage setting"
setting in prod := "prod setting"
Build.scala:
import sbt._
import Keys._
object TaskBuild extends Build {
val setting = SettingKey[String]("setting", "a simple string setting")
val task = TaskKey[Unit]("task", "a simple task experiment")
val taskTask = task <<= setting map { s: String =>
println("Setting is: " + s)
}
lazy val dev = config("dev") describedAs("dev environment settings")
lazy val stage = config("stage") describedAs("stage environment settings")
lazy val prod = config("prod") describedAs("prod environment settings")
lazy val root = Project(
"project",
file("."),
settings = Defaults.defaultSettings ++ Seq(taskTask)
)
.configs(dev, stage, prod)
}