Как использовать значение другого ключа в задаче sbt?

Скажем, я определил такую задачу sbt:

name := "hello"

version := "1.0"

scalaVersion := "2.11.0"

val mykey = settingKey[Int]("demo key")

mykey := 100

val hello = taskKey[Unit]("demo task")

hello := {println("Hello, world" + mykey)}

Я определил mykey, значение которого равно 100, и я хочу использовать его в другом hello, но когда я запускаю:

$ sbt
> hello

Он выводит:

Hello, worldsbt.SettingKey$$anon$4@66db9b08

Как я могу получить значение 100 mykey?

1 ответ

Используйте value макрос ключ:

hello := { println("Hello, world " + mykey.value) }

mykey имеет тип SettingKey[String] а value - это макрос, определенный в sbt.std.MacroValue

licensed under cc by-sa 3.0 with attribution.