次のコマンドを使用して、コンパイル前にタスクを自動的に実行できます。
compile in Compile <<= (compile in Compile).dependsOn(myTask)
どうすれば同じことをコンパイル後に行うことができますか?
私はできることを知っています:
compile in Compile <<= (compile in Compile) map{x=>
// post-compile work
doFoo()
x
}
任意の Scala コードを実行するには、コンパイル イベントが発生したときにターゲット タスク自体を自動的に実行する必要があります。
次のようなことをします:
val foo = TaskKey[Unit]("foo", "...")
val fooTask = foo <<= scalaInstance map {si =>
...
} dependsOn(compile in Compile)
sbt> プロンプトから「foo」と入力すると動作します。つまり、タスクはコンパイル後に実行されますが、目標はコンパイル タスク自体にフックすることなので、コンパイルが発生するたびに、コンパイルの完了後に foo タスクが自動的に呼び出されます。
これは可能ですか、それとも組み込みのコンパイル タスクにフックするのが間違っているのでしょうか?