2012年11月8日木曜日

build.gradleにプラグインを定義する

build.gradle内にGradleのカスタムプラグインを定義する例は以下の通り。(なお、これは例のための例であり、実用性はない点に注意。実際にカスタムプラグインを作成する際の例は『dev-xconnecting: Gradleのカスタムプラグインを作成する』を参照。)

class Greeting implements Plugin<Project> {
void apply(Project target) {
target.task('greet', type: GreetingTask)
}
}
class GreetingTask extends DefaultTask {
def greeting = 'Hello'
@TaskAction
def greet() {
println greeting
}
}
apply plugin: Greeting
task hi(type:GreetingTask){
greeting = 'Hi'
}
view raw build.gradle hosted with ❤ by GitHub

Greetingクラスがプラグインを定義するためのクラス。greetとというタスク名でGreetingTaskを呼び出せるよう設定している(3行目)。

15行目で、作成したプラグインを適用している。文字列ではなく型名でプラグインを指定している点に注意。
上記のタスクを呼び出した結果は、以下の通り。
>gradle -q greet
Hello
>gradle -q hi
Hi

0 件のコメント:

コメントを投稿