How can I make sbt run a custom task whenever the code of Runtime configuration is compiled?
Given this task:
val myCustomTask = taskKey[Unit]("Prints a greeting")
myCustomTask := {
println("Hello from myCustomTask!")
}
What I have tried so far:
compile := {(compile in Compile) dependsOn myCustomTask}.value
That does what I want when sbt compile is run.
However, my custom task is not run when I run sbt test, even though sbt test makes sbt also compile the runtime sources if needed, not only test sources:
sbt clean test
...
[info] Compiling 19 Scala sources to /myproject/target/scala-2.11/classes...
[info] Compiling 7 Scala sources to /myproject/target/scala-2.11/test-classes...
..
I read that test:compile implies a compile, but how? It doesn't seem to depend on compile itself.