Во-первых, определение sampleKeyA в компиляции , конечно, допустимо, поскольку оно охватывает настройку для задачи compile .
Во-вторых, вы получаете значение 1 , потому что вы используете sampleKeyA без вышеуказанной области действия. Измените его на sampleKeyA в компиляции , и вы получите значение 2 .
Чтобы увидеть это, просто запустите "пустой" сеанс sbt и выполните следующее:
> set SettingKey[String]("sampleKeyA") := "value 1"
[info] Reapplying settings...
[info] Set current project to default-a57b70 (in build file:/Users/heiko/tmp/sbt/)
> set SettingKey[String]("sampleKeyA") in compile := "value 2"
[info] Reapplying settings...
[info] Set current project to default-a57b70 (in build file:/Users/heiko/tmp/sbt/)
> sampleKeyA
[info] value 1
> sampleKeyA(for compile)
[info] value 2