Maven 入門 | Java アプリケーション開発 | プラグイン(plugin)

作成したプロジェクトは、Maven コマンドでビルドして Jar ファイルにまとめることができた。しかし、この Jar ファイルは少し扱いにくい。-classpath で Jar ファイルを指定し、メインクラスを実行しなければならない。「もう少し簡単に実行できないだろうか」と思った人も多いだろう。これは可能である。ただし、そのためには「プラグイン」の使い方を知る必要がある。

Maven では、さまざまな機能が「プラグイン」として追加されている。プログラムの実行は “exec-maven-plugin” というプラグインで実装されている。このプラグインに関する設定情報を pom.xml に追加することで、プログラムを実行できる。

プラグインは、pom.xml の <project> タグの中に次のような形で含める。これはビルドに関するプラグインの場合である。

<build>
    <plugins>
        <plugin> ... 省略 ... </plugin>
    </plugins>
</build>

<build> はビルドに関する設定を記述するためのもので、<plugins> はプラグイン設定情報をまとめるためのものだ。この中に <plugin> というタグを使って、特定のプラグインに関する設定をまとめる。

プラグインはこれ以外にも多く用意されている。実は、すでに説明したものの中にもプラグインを使った機能がある。たとえば mvn compile というコマンドは maven-compiler-plugin というプラグインで実装されている。また、mvn package は maven-jar-plugin というプラグインで実装されている。

結局、Maven で使用する goal、たとえば compile や package のようなものは、すべてプラグインとして組み込まれているのである。これらは <dependency> タグなどでライブラリをダウンロードする必要はない。標準でそのまま使用できるものもあり、なければ必要に応じてダウンロードされる。別途 <dependency> タグを用意する必要はない。

<plugin> タグ

プラグインの設定情報を記述する <plugin> タグには、そのプラグインに必要な情報をタグとして用意する必要がある。

最低限用意するタグは、おおむね次のようになる。

<plugin>
    <groupId>グループ ID</groupId>
    <artifactId>アーティファクト ID</artifactId>
    <version>バージョン</version>
    <configuration>
        ...... 設定情報 ......
    </configuration>
</plugin>

グループ ID、アーティファクト ID、バージョンといったものは、もう慣れてきただろう。これらを使って、使用するプラグインプログラムを指定する。その後の <configuration> タグは、このプラグインを使用するために必要な情報などを用意するためのものだ。ここに記述する内容はプラグインによって異なる。不要な場合もある。