Oct 23, 2005
[Maven] Build Task の自動化
プロジェクトの Build Task を自動化する方法を考えてみる。 Build Task は、プロジェクト毎に大同小異なのでベースは固まっていて且つカスタマイズ性が高い、というのがベスト。
Maven2 では、プロジェクトのライフサイクルが規定されている。 ライフサイクルは複数のフェーズから成っていて、それぞれのフェーズに任意の Goal を割り当てることができる。そのため、上記の要件をきちんと満たしてくれている。
デフォルト状態で規定されているライフサイクルは以下の通り。(maven-core-2.0.jar$META-INF/plexus/components.xml から抜粋)
<lifecycles>
<lifecycle>
<id>default</id>
<phases>
<phase>validate</phase>
<phase>initialize</phase>
<phase>generate-sources</phase>
<phase>process-sources</phase>
<phase>generate-resources</phase>
<phase>process-resources</phase>
<phase>compile</phase>
<phase>process-classes</phase>
<phase>generate-test-sources</phase>
<phase>process-test-sources</phase>
<phase>generate-test-resources</phase>
<phase>process-test-resources</phase>
<phase>test-compile</phase>
<phase>test</phase>
<phase>package</phase>
<phase>integration-test</phase>
<phase>verify</phase>
<phase>install</phase>
<phase>deploy</phase>
</phases>
</phases>
</lifecycle>
それぞれのフェーズの用途は Introduction to the Build Lifecycle で解説されている。
ここを適当にカスタマイズして Build Task を組み立てることができそう。
また、↓の様に独自のライフサイクルとフェーズを定義することもできる。
<lifecycle>
<id>clean</id>
<phases>
<phase>pre-clean</phase>
<phase>clean</phase>
<phase>post-clean</phase>
</phases>
<default-phases>
<clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean>
</default-phases>
</lifecycle>



