倭マン's BLOG

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

プラグインを作ろう! (5) -- @goal:ゴール名を設定する

前回までで Mojo インターフェースの仕様に関する事項は概ね終わりました。

ただし、Mojo インターフェースの実装を提供するだけではまだ実際に動く mojo にはならなくて、少なくとも作成した Mojo の実装に「@goal アノテーション*1を付加する必要があります。

サンプル


実際に動作する最小限の Mojo の実装のサンプルは、例えば以下のようになります:

package org.sample;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;

/**
 * My first maven plugin !
 *
 * @goal sayhi
 */
public class HelloMojo extends AbstractMojo{
    
    public void execute()throws MojoExecutionException{
        getLog().info("***** Hello, world ! *****");
    }
}

HelloMojo クラスの JavaDoc コメントに「@goal sayhi」を付加することで、この Mojo に対するゴールを指定しています。

プラグインを実行する


以前の記事にプラグインを実行する方法を書きましたが、上記の例で簡単におさらいをしておきましょう。

プラグイン・プロジェクトの「groupId」「artifactId」はそれぞれ

groupId org.sample
artifactId hello

だとしましょう。 プラグインを実行するためには、Maven2 プロジェクトのルートフォルダ上で以下のコマンドを実行します*2

mvn org.sample:hello:sayhi

実行結果として、以下のようなメッセージが表示されます:

...
[INFO] [hello:sayhi]
[INFO] ***** Hello, world ! *****
...

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

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

*1:記事中でアノテーションを書く場合、「@goal」または「goal アノテーション」とした方がいいのかもしれません。 以降では「@goal」の様に書きます。

*2:プラグイン・プロジェクトをローカル・リポジトリにインストールしていなければ、プラグイン・プロジェクトのルートフォルダ上で「mvn install」コマンドを実行してください。