category: Java
DATE : 2006/12/01 (Fri)
DATE : 2006/12/01 (Fri)
Maven の各フェーズには、ゴールが設定されています。
例えば、compile フェーズには compiler:compile ゴールが、package フェーズには jar:jar ゴールが標準で設定されています。
ここで以下のように pom.xml の設定を行うと、phase 要素のフェーズに goal 要素に示したゴールが実行されます。
... <build> <plugins> ... <plugin> <groupId>プラグインのgroupId</groupId> <artifactId>プラグインのartifactId</artifactId> <executions> <execution> <id>実行する処理を区別するためのID</id> <phase>処理を実行するフェーズ名</id> <goals> <goal>実行するゴール</goal> <goal>(複数記述可)</goal> </goals> <configuration>この処理でのプラグインの設定</configuration> </execution> <execution>(複数記述可)</execution> </executions> </plugin> ... </plugins> </build> ...
特別な設定が必要ない場合、configuration 要素は省略できます。
テストコードを収めた JAR ファイルを作成する jar:test-jar ゴールを test フェーズに実行するには、次のように記述します。
... <build> <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <id>create-test-jar</id> <phase>test</phase> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> ... </plugins> </build> ...
goal 要素に指定しているのは「jar:test-jar」の「:」以降の部分であることに注意してください。「maven-xxx-plugin」の xxx 部分は、標準では「:」以前の部分と自動的に解釈されます。そのため、goal 要素には「:」以前の部分は書きません。
標準では、test フェーズには surefire:test ゴールが設定されています。そのため surefire:test ゴールの後に jar:test-jar ゴールが実行されます。
なお、phase 要素も省略することができます。phase 要素を省略すると、実行はそのゴールに関連付けられたフェーズで行われます。例えば、jar:test-jarのページには、次のような記述があります。
Automatically executes within the lifecycle phase: package
つまり phase 要素を省略すると、jar:test-jar ゴールは package フェーズで実行されることになります。
関連記事
参考文献
- Introduction to the Build Lifecycle
- POM Reference 3.1.1.2 Plugins
- Introduction to Plugin Prefix Resolution
PR
●この記事にコメントする
忍者ブログ [PR]