2012年11月9日金曜日

Gradleのカスタムプラグインを作成する

Gradleのカスタムプラグインを作成する手順は、以下の通り。

ここでは、『dev-xconnecting: build.gradleにプラグインを定義する』でbuild.gradle内に定義したプラグインを、Gradleのカスタムプラグインとしてビルドしてみる。

まず、Groovy用のGradleプロジェクトを作成する(手順は『dev-xconnecting: Eclipse + Gradle STS SupportでGroovy用のGradleプロジェクトを作成』を参照)。

次に、以下のファイルを作成する。

src
 └─main
    ├─groovy
    │      Greeting.groovy
    │      GreetingTask.groovy
    │
    └─resources
        └─META-INF
            └─gradle-plugins
                    greeting.properties
 
Greeting.groovyは以下の通り。


GreetingTask.groovyは以下の通り。


package文やimport文が追加されている以外は、『dev-xconnecting: build.gradleにプラグインを定義する』で作成したクラスと違いはない。

greeting.propertiesにはプラグインの完全修飾クラス名を指定する。

implementation-class=com.example.Greeting

このプロパティファイルの名前(greeting)がプラグイン名となる(apply pluginする際に、この名前を使用する)。

プラグインをビルドしてMavenのローカルリポジトリにデプロイするためのbuild.gradleは、以下の通り。


9-12行目でプラグインのビルド時に必要となる外部依存関係を定義している。gradle buildすると、build/libs内にプラグインのjarファイルが作成される。さらに、gradle uploadArchivesで、このjarファイルがMavenのローカルリポジトリにデプロイされる。

作成したプラグインを使用するためのbuild.gradleは、以下の通り。なお、buildscriptプロパティには、ビルドスクリプト自身の外部依存関係(ex. カスタムプラグインのjarファイル)を記述する。


上記build.gradleからタスクを呼び出した結果は、以下の通り。

>gradle -q greet
Hello
>gradle -q hi
Hi

関連リンク

0 件のコメント:

コメントを投稿