付録A Maven を使用する準備
A.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
ここでは、Red Hat Fuse プロジェクトをビルドするために Maven を準備する方法の概要を説明し、Maven アーティファクトの検索に使用される Maven コーディネートの概念を紹介します。
A.2. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Maven を使用してプロジェクトをビルドするには、以下が必要になります。
- Maven インストール: Maven は Apache の無料のオープンソースビルドツールです。最新バージョンは Maven のダウンロードページ からダウンロードできます。
ネットワーク接続: ビルドの実行中、Maven は追加設定を必要とせずに動的に外部リポジトリーを検索し、必要なアーティファクトをダウンロードします。デフォルトでは、Maven はインターネット上でアクセスされたリポジトリーを探します。Maven がローカルネットワーク上のリポジトリーを優先して検索するように、この挙動を変更することができます。
注記Maven はオフラインモードで実行できます。オフラインモードでは、Maven はローカルリポジトリーのアーティファクトのみを検索します。
A.3. Red Hat Maven リポジトリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Maven リポジトリーからアーティファクトにアクセスするには、Red Hat Maven リポジトリーを Maven の settings.xml
ファイルに追加する必要があります。Maven は、ユーザーのホームディレクトリーの .m2
ディレクトリーで settings.xml
ファイルを探します。ユーザー指定の settings.xml
ファイルがない場合、Maven は M2_HOME/conf/settings.xml
のシステムレベルの settings.xml
ファイルを使用します。
Red Hat リポジトリーを Maven のリポジトリーリストに追加するには、新しい .m2/settings.xml
ファイルを追加するか、システムレベルの設定を変更します。Red Hat Fuse リポジトリーの Maven への追加 の例のように、settings.xml
ファイルに Red Hat リポジトリーの repository
要素を追加します。
Red Hat Fuse リポジトリーの Maven への追加
A.4. アーティファクト リンクのコピーリンクがクリップボードにコピーされました!
アーティファクトは Maven ビルドシステムの基本的な要素です。Maven ビルドの実行後、アーティファクトの出力は通常、JAR や WAR などのアーカイブになります。
A.5. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
Maven の主な機能には、アーティファクトを見つけ、アーティファクトとの間の依存関係を管理する機能があります。Maven は、特定のアーティファクトの場所を一意に定義する Maven コーディネート を使用して、アーティファクトの場所を定義します。基本的なコーディネートタプルの形式は {groupId, artifactId, version}
です。追加のコーディネートである packaging および classifier をタプルに使用することもあります。タプルは、基本のコーディネート、追加の packaging コーディネート、または追加の packaging および classifier コーディネートの両方使用して、以下のように作成できます。
groupdId:artifactId:version groupdId:artifactId:packaging:version groupdId:artifactId:packaging:classifier:version
groupdId:artifactId:version
groupdId:artifactId:packaging:version
groupdId:artifactId:packaging:classifier:version
各コーディネートの説明は次のとおりです。
- groupdId
-
アーティファクトの名前の範囲を定義します。通常、パッケージ名のすべてまたは一部をグループ ID として使用します。例:
org.fusesource.example
- artifactId
- アーティファクト名 (グループ ID に関連する) を定義します。
- version
-
アーティファクトのバージョンを指定します。バージョン番号には
n.n.n.n
のように最大 4 つのパートを含めることができ、最後のパートには数字以外の文字を含めることができます (たとえば1.0-SNAPSHOT
の場合、最後のパートは英数字のサブ文字列0-SNAPSHOT
です)。 - packaging
-
プロジェクトのビルド時に生成されるパッケージ化されたエンティティーを定義します。OSGi プロジェクトでは、パッケージングは
bundle
になります。デフォルト値はjar
です。 - classifier
- 同じ POM からビルドされた内容が異なるアーティファクトを区別できるようにします。
グループ ID、アーティファクト ID、パッケージング、およびバージョンは、アーティファクトの POM ファイルの対応する要素によって定義されます。以下に例を示します。
たとえば、前述のアーティファクトの依存関係を定義するには、以下の dependency
要素を POM に追加することができます。
バンドルは特定タイプの JAR ファイルで、jar
はデフォルトの Maven パッケージタイプであるため、前述の依存関係に bundle
パッケージを指定する必要はありません。ただし、依存関係でパッケージタイプを明示的に指定する必要がある場合は、type
要素を使用できます。