Mavenを使用する

おめでとうございます! Mavenのインストールが終わって、そしてプロジェクトと統合出来ました。 これでMavenの恩恵にあずかる準備が整いました。 この文書の残りで、Mavenビルドシステムの基本的な操作を紹介します。 Mavenに対応した以下のTurbineプロジェクトをビルドする方法を学ぶことになります: Torque、Stratum、Fulcrum、Turbine。 それぞれのプロジェクトの処理はMavenのおかげで(結果的に)全く同一です。

最初に上記のTurbineプロジェクトのどれかのソースをチェックアウトします。 やり方が分からなければ、CVS Repositoriesを参照して下さい。 成長中のJakartaプロジェクトファミリーに詳しい人へ: いくつかのプロジェクトはビルドや配布に必要なJARファイルをCVSリポジトリに含んでいます。 Mavenは1つ以上の集中リポジトリからこれらの依存するファイルをすべて自動的にダウンロードする能力を持ちます。 そのためこれらのプラクティスは不要になります。 任意のMavenのgoalが実行される前に、${maven.repo.remote}プロパティで定義されたリモートのリポジトリから自動的にすべての必要な依存ファイルをダウンロードします。

自動的に依存ファイルをダウンロードしたあと、ローカルのリポジトリに保管します。 このディレクトリをすべてのJARファイルの保管に使用することを思い出して下さい。 ただし、2つの例外があります: 1)配布されないJARはJARをダウンロード可能な場所を示すメッセージを表示します。 2)ローカルにもリモートにも存在しないJARはエラーとなります。 どちらの場合でも、自分でダウンロードして$MAVEN_HOME/repository に置く必要があります。 すべての依存するJARをダウンロードした後は、Mavenに対応したTurbineプロジェクトの JARを簡単に生成できます。 以下を実行して下さい:

maven java:jar

JARファイルにパッケージングされる前に、すべてのコードがコンパイルされ、 ユニットテストが実行されるのが分かるでしょう。 ユニットテストで生成されたレポートはあとでパースされ、HTMLレポートが作成されます。 これも生成されたサイトドキュメンテーションの一部です。 JARファイルを自動的に配布することもできます。

現時点で、手間に見合う最大の事柄はサイトドキュメンテーションの生成です。 サイトの他の部分に関連する文書が生成されます。 この文書は以下のような種類があります: 開発者リスト、メーリングリスト、依存関係、ユニットテストのレポート、 ソースコードのメトリクス、変更ログ、JavaDoc、相互参照ソースコード。 (ひどい話ではないことに、プロジェクトディスクリプタを作成するだけで済みます) また、すべてのxdocs に追加される基本的なナビゲーションシステムも生成します。 上記のすべての文書を生成するために、以下を実行して下さい:

maven site:generate

このコマンドを実行すると、プロジェクトの基準ディレクトリ内の target/docsに完全なドキュメンテーションのウェブサイトが出来ます。

プロジェクトのウェブサイトの管理者は、 生成したサイトをMavenを使用してサーバに公開することが出来ます。 Mavenはプロジェクトディスクリプタに定義された様々な設定 (ウェブサーバのホスト名、サイトを配置するサーバのディレクトリ) に基づいて配置します。 以下を実行して下さい:

maven site:deploy

ウェブサーバにアクセスできるなら、サイト全体が公開されるでしょう。 この機能はプロジェクトのウェブサイトの更新をとてもやりやすくしますし、 同時に自動化しやすくなります。 例を完結させるために、最後にプロジェクトのディレクトリを奇麗にしたくなったとします。 すっかりMavenに熱を上げてしまって、すべてをもう一度試してみたくなったのです! 以下を実行して下さい:

maven clean

利用可能なすべてのMavenのgoalの説明を表示するには、以下を実行して下さい:

maven -g

これでMavenの紹介は終わりです。 現在、すべてのTurbineのプロジェクトでMavenを使用してウェブサイトを生成しています。 利用できるMavenの機能がないか、調べてみて下さい。 Mavenに特有のコンテンツは"Maven Documentation"のセクションにあります。