今回は、Maven2 を用いてビルドを行う際に、自動的に assembly が生成されるようにします。
もう少し具体的に。 assembly を作成するのは謂わばパッケージングなので、package フェーズが実行されたときに一緒に assembly が作成されるようにします。
POM ファイルの設定
前回のサンプル POM ファイルを、package フェーズの実行と同時に assembly を作成するように変更(設定を追加)してみましょう:
<?xml version="1.0"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>1.0</version> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <!-- 以下を追加 --> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>attached</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
変更した部分は 「plugin/executions」 要素です。
<executions> 要素下に <execution> 要素を追加し、その下に <id>, <phase>, <goals> 要素を追加します:
- <id>
- この処理(実行 execution)の id です。 この POM ファイルを継承した POM ファイルで何らかの処理を割り込ませる際に使います*1。
- <phase>
- この処理を割り込ませるフェーズです。 ここでは、パッケージングと同時に assembly を作成したいので、フェーズに "package" を指定しています*2。
- <goals>
- 子要素である <goal> 要素に、上記のフェーズに実際に割り込ませる処理を指定します。 指定できる処理は Assembly Plugin に定義されているゴールです。 ここではそれ用のゴールである "attached" ゴールを指定しています*3。
assembly の作成
当初の目的通り、以下のように package フェーズを実行すれば assembly が作成されます:
mvn package
当然のことながら、普通に package フェーズを実行したときに行われる処理(compile や test)も行われます。 また、 install フェーズのような、暗に package フェーズを実行するフェーズを実行すると、やはり assembly が作成されます。
assembly が作成されるフォルダや assembly 名は前回の場合と同じです。 上記のサンプル POM ファイルの場合、「target」フォルダに sample-1.0-jar-with-dependencies.jar という Jar ファイルが作成されます。
Apache Maven 2.0入門 Java・オープンソース・ビルドツール
- 作者: 野瀬直樹,横田健彦
- 出版社/メーカー: 技術評論社
- 発売日: 2006/12/13
- メディア: 大型本
- 購入: 8人 クリック: 141回
- この商品を含むブログ (97件) を見る