第1章
構成管理入門  

第2章
Subversionによるバージョン管理入門

第3章
Subversionベストプラクティス

第4章
Maven2によるビルド入門

第5章
Maven2ベストプラクティスリリースの自動化

第6章
リリースの自動化

Appendix
Maven 2はまり道


※WEB+DB PRESS Vol.39掲載の記事を載せています。

Appendix Maven2はまり道

Authors:BABA Yasuyuki

はまりその2 アルファ版プラグイン

Maven 2には豊富なプラグインがあり、ビルドプロセスに柔軟に組み込むことができます。 本家のサイト以外に、mojo(注a)などでも公開されています。
ただし、プラグインのバージョンには要注意です。 それがアルファ版だと、未実装の機能があったり、十分な検証が終わっていなかったりということがあ ります。

筆者がJava Web Startのプロジェクトを担当していたときに、Maven 2を使ってアプリケーションサーバ に配備するWARファイルを作る必要がありました。 mojoでJNLPファイルの生成やJARの署名をしてくれるwebstart-maven-pluginが見つかったので、 ビルドプロセスに組み込むことに決めました。 JNLPファイルにJnlpServletが参照するタイムスタンプを埋め込みたかったのですが、どうやったらよいのかまるでわかりませんでした。 苦手な英語のドキュメントを読んでいくと、どうもJnlpServletを使うパターンに対応したJNLPファイルを 生成する機能は未実装のようでした。 まぁ、アルファ版ですのでしかたないですね…。マイナーなプラグインを使うときには事前にしっかり確認 してから使いましょう。

結局どうやったかというと、一部をAntスクリプトで代用しました。maven-antrun-pluginを使うことで、 特定のフェーズにAntのスクリプトを割り当てることができます。 これを使ってmaven-webstart-pluginで作ったJNLPファイルをさらにAntで書き換え対処しました。
やりたいことに対応するプラグインがなかったり、あっても十分な機能が実装されていない場合は、 maven-antrunpluginは有効な方法です。 antlib1をAntのビルドスクリプトでタスクとして定義すれば、Maven 2が解決した依存関係など、Maven 2プロジェクトの内容をAntのビルドスクリプトから参照できますので、 Maven 2とAntの連系がカンタンになります。ちょっと凝ったことをしたいときにはオススメです。

注a)http://mojo.codehaus.org/