2012年11月7日水曜日

build.gradleにカスタムタスクを定義する

Gradleではbuild.gradle内にカスタムタスクを定義することができる。具体例は、下記の通り。

task hello (type: GreetingTask){
}
task hi (type: GreetingTask){
greeting = 'Hi'
}
class GreetingTask extends DefaultTask {
def greeting = 'Hello'
@TaskAction
def greet() {
println greeting
}
}
view raw build.gradle hosted with ❤ by GitHub

 カスタムタスクはorg.gradle.api.DefaultTaskを継承したクラスとして定義する。タスク実行時に呼び出される処理は引数なしのメソッド(上記ではgreet()メソッド)として定義し、@TaskActionアノテーションを付与する。カスタムタスクにプロパティ(上記ではgreetigプロパティ)を定義することにより、外部からの情報を受け取ることができる。
上記のタスクを呼び出した結果は、以下の通り。
>gradle -q hello
Hello
>gradle -q hi
Hi

関連リンク

0 件のコメント:

コメントを投稿