タスクは、このように
taskの後の{}部分に処理を書くだけで作れます。が、実は普通はこんな書き方はあまりしません。
一般的なタスクの形を整理すると、だいたい以下のような形になるでしょう。
task タスク名 {
doFirst {
……実行する処理……
}
doLast {
……実行する処理……
}
}
タスクの{}内には、「
doFirst」「
doLast」といったものが用意されます。これは一種のクロージャです。これらはそれぞれ以下のような働きをします。
doFirst――最初に実行するアクション
doLast――最後に実行するアクション
タスクは、用意された「
アクション」を順に実行していく働きをします。アクションというのは、具体的に実行される処理の「実行単位」みたいな感じでしょうか。タスクの中にはいくつものアクションが用意されていて、それが順次実行されていくのですね。
doFirstと
doLastは、それらアクションの一番最初・一番最後に実行するものです。要するに、「タスクの基本的な処理などがあったとき、その前に実行するものと後に実行するもの」をこれらで用意する、というわけです。
これらは、2つセットで用意する必要はありません。どちらか一方だけでもかまいません。
では、実際に簡単な例を動かしてみましょう。下のリスト欄のようにhelloタスクを書き換えてみて下さい。そして、「
gradle hello」を実行してみましょう。すると、以下のように出力されます。
> Task :hello
これは、helloタスクの doFirst です。
これは、helloタスクの doLast です。
サンプルでは、
doLastが先に、
doFirstが後に書かれていますが、実行結果を見ると、まず
doFirstが実行され、その後に
doLastが実行されているのがわかります。