を入力として受け取るタスクlazy val task = TaskKey[Unit]がありlazy val setting = SettingKey[String]ます。また、3 つの異なる独立した構成スコープ ( config("dev")、config("stage")、config("prod")) と、構成スコープごとにbuild.sbt異なる値を指定するファイル( ... ) もあります。settingsetting in stage := "foo"
taskconfigスコーププレフィックスを使用し て呼び出すと、タスクがそれぞれのconfigスコープの値を使用するようになると予想しました(たとえば>dev:task、タスクにsettingからの値を使用させdev、コマンドを使用すると、タスクにからの値を>stage:task使用させます...)。ただし、これは機能しないようです。settingstage
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)
}