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>

Posted in Maven | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |