|
|
MavenはXMLプロジェクトディスクリプタを使ってプロジェクトのオブジェクトモデルを生成します。
Mavenのインターフェイスを使ってこのオブジェクトモデルを扱うことができます。
現在のところは、インターフェイスは、
Antのビルドファイル
(訳註:もともとリンク先がありません。)を使ったものだけが提供されています。
将来、CLIやJMXのような他のインターフェイスが提供されるでしょう。
この文書では、Mavenのプロジェクトディスクリプタを構成するXML要素と属性を説明します。
プロジェクトディスクリプタが有効であることを確認するXMLスキーマは、
CVS
リポジトリから取得できます。
さらに、統合の文書にプロジェクトディスクリプタのサンプルが示されています。
ここにプロジェクトディスクリプタの画像による表現があります。
確かに奇妙なことに、MavenのビルドシステムはMavenでビルドされています(自分たちが持っているドッグフードを食べていると信じています)。
<project>要素はプロジェクトに関する様々な属性を指定します。
この要素がプロジェクトディスクリプタのルート要素です。
以降の表に、子どもとなりうるすべての要素の一覧を示します。
子要素の更に子どもについては、後に続く節で記述します。
|
要素
|
説明
|
|
name
|
プロジェクトの完全な名前です。
JavaDocのタイトルを生成するときに使用します。
|
|
id
|
プロジェクトの短い名前です。
JARファイルと配布ファイルの名前に使用します。
|
|
pomVersion
|
Mavenプロジェクトディスクリプタの現在のバージョンです。
新しいバージョンのプロジェクトディスクリプタが利用可能になったとき、
Mavenが自動的に古いプロジェクトディスクリプタを更新することができます。
このバージョン番号はディスクリプタを作成した後に変更すべきではありません。
Mavenが自動的に更新する予定です。
さらなる情報は更新の文書を参照下さい。
|
|
currentVersion
|
プロジェクトの現在のバージョンです。
JARファイルと配布ファイルの名前に使用します。
|
|
organization
|
プロジェクトが所属する組織です。
この要素は組織の様々な属性を記述します。
|
|
inceptionYear
|
プロジェクトが開始した年を4桁で指定します。
JavaDocの著作権情報を生成するときに使用します。
|
|
package
|
プロジェクトのパッケージ名です。
JavaDocを生成するときに使用します。
|
|
gumpRepositoryId
|
(オプション)このプロジェクトが参加するGumpリポジトリのIDです
(Gump integration effortに参加すると仮定します)。
|
|
shortDescription
|
プロジェクトの簡単な説明です。
1行に限定されます。
|
|
description
|
(オプション)プロジェクトの詳しい説明です。
通常、この要素は、説明でHTMLタグを使えるようにCDATAとして指定されます。
ウェブサイトの表紙を生成するときに使用します。
|
|
url
|
プロジェクトのホームページのURLです。
|
|
logo
|
プロジェクトのロゴ画像のURLです。
生成されるウェブサイトのベースディレクトリに対する相対URL
(例 /images/project-logo.png)や、
絶対URL(例 http://my.corp/project-logo.png)になります。
プロジェクトの文書を生成するときに使用します。
|
|
issueTrackingUrl
|
(オプション)プロジェクトの問題追跡システムのURLです。
|
|
siteAddress
|
(オプション)プロジェクトのウェブサイトを提供するウェブサーバのホスト名です。
ウェブサイトを配置するときに使用します。
|
|
siteDirectory
|
(オプション)このプロジェクトの公開ウェブサイトが存在するウェブサーバ上のディレクトリです。
ウェブサイトを配置するときに使用します。
|
|
distributionDirectory
|
(オプション)完成した配布ファイルが公開されるウェブサーバ上のディレクトリです。
配布ファイルを配置するときに使用します。
|
|
repository
|
プロジェクトで使用するソース設定管理システムに関する情報です。
|
|
versions
|
(オプション)プロジェクトの以前のバージョンに関する情報を含みます。
maven:distを実行するときに使用します。
|
|
mailingLists
|
プロジェクトのメーリングリストの情報を含みます。
ウェブサイトの表紙を生成するときに使用します。
|
|
developers
|
プロジェクトのコミッタを記述します。
ウェブサイトのプロジェクトチームのページを生成するときに使用します。
|
|
contributors
|
プロジェクトへの貢献者を記述します。
ウェブサイトのプロジェクトチームのページを生成するときに使用します。
|
|
dependencies
|
プロジェクトの依存関係を記述します。
プロジェクトをビルドするときに使用します。
|
|
build
|
プロジェクトのビルド環境を記述します。
ビルドシステムを実行するときに使用します。
|
この要素はプロジェクトが所属する組織の様々な属性を記述します。
文書を作成するときにこれらの属性を使用します(著作権情報とリンクに使用します)。
|
要素
|
説明
|
|
name
|
組織の完全な名前です。
|
|
url
|
組織のホームページのURLです。
|
|
logo
|
組織のロゴ画像のURLです。
生成されるウェブサイトのベースディレクトリに対する相対URL
(例 /images/org-logo.png)や、
絶対URL(例 http://my.corp/logo.png)になります。
プロジェクトの文書を生成するときに使用します。
|
|
要素
|
説明
|
|
connection
|
(オプション)リポジトリとその接続方法を説明するソース設定管理システムのURLです。
特定のIDからバージョンをビルドするときに使用します。
この要素は以下の形式で指定します:
scm:<provider>:<provider-parameters>
cvsの場合、以下の形式になります:
scm:cvs:pserver:user@host:/cvs/root:module-name
pserverはCVSにアクセスするプロトコルです。
そして、user@hostは指定されたcvsホストにログインするユーザ名、
/cvs/rootはcvsのルートディレクトリ、
module-nameは実行されるcvsモジュール名です。
通常のApacheプロジェクト用の設定を例にあげます:
scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:module-name
現在のところ、サポートされるソース設定管理システムはCVSだけです。
その他のシステムはできるだけ早く追加される予定です。
|
|
url
|
(オプション)閲覧用のCVSリポジトリのURLです。
|
この要素は、プロジェクトの以前の各バージョンを記述します。
それぞれのバージョンはversion要素で記述します。
|
要素
|
説明
|
|
id
|
バージョンに固有の識別子です。
maven:distでビルドするときにこのIDを使用します。
|
|
name
|
このリリースが配布された外部バージョンです。
例をあげます:
1.0、1.1-alpha1、
1.2-beta、1.3.2などです。
|
|
tag
|
プロジェクトのこのバージョンに関連づけられたソースコード用に、
プロジェクトで使用するバージョン管理システム(例 cvs)で付けられた名前です。
|
この要素は、プロジェクトに関係するすべてのメーリングリストを記述します。
それぞれのメーリングリストはmailingList要素と追加の要素(以降に示します)で記述します。
これらの情報は自動生成されるサイトの文書で使用します。
|
要素
|
説明
|
|
name
|
メーリングリストの名前です。
|
|
subscribe
|
メーリングリストを購読するためのEメールアドレスやリンクです。
Eメールアドレスの場合は、文書の作成時に自動的にmailto:リンクが作成されます。
|
|
unsubscribe
|
メーリングリストの購読を解除するためのEメールアドレスやリンクです。
Eメールアドレスの場合は、文書の作成時に自動的にmailto:リンクが作成されます。
|
|
archive
|
アーカイブを閲覧するためのURLリンクです。
|
この要素は、プロジェクトに関係するすべての開発者を記述します。
各開発者は、developer要素と追加の要素(以降に示します)で記述します。
これらの情報は自動生成されるサイトの文書で使用します。
|
要素
|
説明
|
|
name
|
開発者の氏名です。
|
|
id
|
開発者のユーザ名です。
|
|
email
|
開発者のEメールアドレスです。
|
|
organization
|
開発者が所属する組織です。
|
|
roles
|
このプロジェクトにおける開発者の役割です。
各役割は、役割名を内容に持つrole要素で記述します。
|
この要素は、プロジェクトに関係するすべての貢献者(開発者は除きます)を記述します。
各貢献者は、contributor要素と追加の要素(以降に示します)で記述します。
これらの情報は自動生成されるサイトの文書で使用します。
|
要素
|
説明
|
|
name
|
貢献者の氏名です。
|
|
email
|
貢献者のEメールアドレスです。
|
|
organization
|
貢献者が所属する組織です。
|
|
roles
|
このプロジェクトにおける貢献者の役割です。
各役割は、役割名を内容に持つrole要素で記述します。
|
この要素は、プロジェクトに関係するすべての依存関係を記述します。
各依存関係はdependency要素と追加の要素(以降に示します)で記述します。
これらの依存関係は、ビルドプロセス中にプロジェクトのクラスパスを構築するために使用します。
更に、Mavenは集中リポジトリからこれらの依存するファイルを自動的にダウンロードします。
リポジトリからダウンロードするファイル名は、id-version.jarの形式になります。
idはid要素から決定し、
versionはversion要素から決定します。
|
要素
|
説明
|
|
id
|
依存するファイルの名前です。
|
|
version
|
依存するファイルのバージョンです。
|
|
url
|
依存するファイルのホームページです。
|
この要素は、プロジェクトに関係するすべてのビルドプロパティを記述します。
プロジェクトのビルド環境を記述するいくつかの要素があります。
それぞれの要素を以下で説明します:
|
要素
|
説明
|
|
name
|
プロジェクトの完全な名前です。
JavaDocのタイトルを生成するときに使用します。
|
|
nagEmailAddress
|
このプロジェクトのビルド結果に基づいた通知を送信するアドレスです。
例えば持続した統合を提供する場合のように、
無人ビルドを行うツールが使うことを目的としています。
現在、maven:gump-descriptorターゲットで使用します。
|
|
unitTestSourceDirectory
|
この要素は、プロジェクトのユニットテストのソースを含むディレクトリを指定します。
生成されたビルドシステムは、プロジェクトをテストするときに、これらのディレクトリをコンパイルします。
ユニットテストはJUnitテストフレームワークを使用する必要があります。
|
|
integrationUnitTestSourceDirectory
|
この要素は、プロジェクトの統合ユニットテストのソースを含むディレクトリを指定します。
生成されたビルドシステムは、プロジェクトをテストするときに、これらのディレクトリをコンパイルします。
統合ユニットテストはCactusテストフレームワークを使用する必要があります。
|
|
sourceDirectory
|
この要素は、プロジェクトのソースファイルを含むディレクトリを指定します。
生成されたビルドシステムは、プロジェクトをビルドするときに、これらのディレクトリをコンパイルします。
|
|
aspectSourceDirectory
|
この要素は、プロジェクトのアスペクトのソースを含むディレクトリを指定します。
アスペクトが有効な場合(プロパティの文書を参照下さい)、
生成されたビルドシステムは、プロジェクトをビルドするときに、これらのディレクトリのアスペクトをコンパイルします。
|
|
jarResources
|
この要素は、JARファイル中にパッケージするその他の追加リソースを指定します。
各リソースはjarResource要素で指定します。
|
|
jars
|
この要素は、最終的なJARの一部としてパッケージすべき追加のJARファイルを指定します。
[TODO: この要素がjarResources要素とどのように異なるか、まだ不明です。
より明確にする必要があります]
それぞれの追加のJARファイルはjar要素で指定します。
|
|
unitTestPatterns
|
この要素は、unitTestSourceDirectory中のどのファイルがユニットテストのJavaソースファイルであるかを指定するパターンです。
それぞれのパターンはunitTestPattern要素で指定します。
|
|
integrationUnitTestPatterns
|
この要素は、integrationUnitTestSourceDirectory中のどのファイルが統合ユニットテストのJavaソースファイルであるかを指定するパターンです。
それぞれのパターンはintegrationUnitTestPattern要素で指定します。
|
|
要素
|
説明
|
|
jarResource
|
maven:jarターゲットで作成するJARファイルにパッケージするリソースのパターンを指定します。
この値は、include = AntPattern、exclude = AntPattern、
JARディスクリプタファイルのいずれかの形式で指定します。
パスは、通常${basedir}を基準とした相対パスですが、
${maven.jarResources.basedir}プロパティで上書きすることもできます。
|
|
要素
|
説明
|
|
unitTestPattern
|
1組のJavaソースファイルを指定するパターンです。
この値は、include = AntPattern、exclude = AntPattern、
JARディスクリプタファイルのいずれかの形式で指定します。
註: これらのパターンは.classファイルではなく.javaソースを指定します。
これらのユニットテストはJUnitテストフレームワークを使用する必要があります。
|
|
要素
|
説明
|
|
integrationUnitTestPattern
|
1組のJavaソースファイルを指定するパターンです。
この値は、include = AntPattern、exclude = AntPattern、
JARディスクリプタファイルのいずれかの形式で指定します。
註: これらのパターンは.classファイルではなく.javaソースを指定します。
これらのユニットテストはCactusテストフレームワークを使用する必要があります。
|
|
要素
|
説明
|
|
jar
|
プロジェクトのJARにパッケージするJARファイルです。
プロジェクトのファイルに追加のJARファイルをパッケージするために使用します。
絶対パスでなければ、JARは${basedir}への相対パスになります。
|
|