倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

GMaven プラグインを作ろう! (3) : GroovyMojo、プラグインのインストール&使用とか

今回はプラグインのインストール&使用とか(一覧)。

GroovyMojo クラス


GMaven プラグインで行う処理を実装するのは GroovyMojo のサブクラスです。 なので、GMaven プラグインには最低1つは以下のようなクラス(GroovyMojo クラス)を作成する必要があります。 GroovyMojo クラスの実装は概ね以下のような感じになります:

// Generated from archetype; please customize.
package org.sample

import org.codehaus.gmaven.mojo.GroovyMojo

/**
 * Example Maven2 Groovy Mojo.
 *
 * @goal sayhi
 */
class HelloMojo extends GroovyMojo {
    /**
     * The hello message to display.
     *
     * @parameter expression="${message}" default-value="Hello World"
     */
    String message

    void execute() {
        ...
    }
}

作成する GroovyMojo クラスで重要なのは

くらいでしょうか。 加えて、

というのもよく使います。

GroovyMojo の実装


GroovyMojo の実装には、通常の Groovy のコーディングに加えて

  • Mojo と共通する手法
  • GMaven プロジェクトと共通する手法

を知っておく必要があります。

★Mojo と共通する手法

GroovyMojo は通常の (Abstract)Mojo と同じように、JavaDoc アノテーションによってプロジェクトの情報を得ることができます。 詳しくは以下を参照:

★GMaven プロジェクトと共通する手法

GMaven プロジェクトで Groovy コードを実行する際に見た、「定義済み変数、メソッド」も GroovyMojo 内で使用することができます。 詳しくは

などを参照してください。 「定義済み変数、メソッド」を一応再掲:

定義済み変数 説明
project, pom ビルドを実行している Maven2 プロジェクト
session 実行しているビルド・セッション
settings 実行しているビルドの設定
log SLF4J ログ・インスタンス
ant Ant ビルダー
fail() MojoExecutionException を投げる

プラグインのインストールと使用


自己完結のため、一応プラグインのインストール方法と使用方法を載せておきます。 これらは、通常の Mojo プロジェクトと同じです。

★プラグインをインストールする

プラグインのインストールはいつもの如く、コマンド

mvn install

を実行するだけです。

★他のプロジェクトからプラグインを使用する(1) :ゴール単独で使用する

ゴール単独で実行したい場合は、チョット長いですが

mvn groupId:artifactId:version:goal

という風にコマンドを実行します。 前回のサンプルでは(作成したゴールが「sayhi」の場合)

mvn org.sample:maven-hello-plugin:1.0:sayhi

を実行します。

★他のプロジェクトからプラグインを使用する(2) :他のフェーズにゴールを割り当てる

ゴールをどこかのフェーズに割り当てて、ライフサイクルの実行時に自動的にそのゴールが実行されるようにするには、pom.xml を修正する必要があります。 前回のサンプルで、「sayhi」ゴールを「validate」フェーズへ割り当てる場合、次のようになります:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.sample</groupId>
        <artifactId>maven-hello-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>sayhi</goal>
            </goals>
          </executions>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

Maven2 は設定が大変!

Groovyイン・アクション

Groovyイン・アクション


Apache Maven 2.0入門 Java・オープンソース・ビルドツール

Apache Maven 2.0入門 Java・オープンソース・ビルドツール