Freewind
Freewind

Reputation: 198318

How to use the value of another key in a sbt task?

Say I have defined such a sbt task:

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)}

I have defined a mykey whose value is 100, and I want to use it in another custom task hello, but when I run:

$ sbt
> hello

It outputs:

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

How can I get the value 100 of mykey?

Upvotes: 0

Views: 483

Answers (1)

Andrzej Jozwik
Andrzej Jozwik

Reputation: 14649

Use the value macro of the Key:

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

mykey is of type SettingKey[String] and value - is a macro defined in sbt.std.MacroValue

Upvotes: 5

Related Questions