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
-
アーティファクトの名前の範囲を定義します。通常、パッケージ名のすべてまたは一部をグループ IDアプリケーションに使用します(例:
org.fusesource.example
)。 - artifactId
- アーティファクト名 (グループ ID に関連する) を定義します。
- version
-
アーティファクトのバージョンを指定します。バージョン番号には
n
の最後の部分は英数字のサブ文字列、.n.n.n
の 4 つの部分を含めることができ、バージョン番号の最後の部分には数字以外の文字を含めることができます(たとえば、1.0-SNAPSHOT0-SNAPSHOT
)。 - packaging
-
プロジェクトのビルド時に生成されるパッケージ化されたエンティティーを定義します。OSGi プロジェクトでは、パッケージングは
bundle
になります。デフォルト値はjar
です。 - classifier
- 同じ POM からビルドされた内容が異なるアーティファクトを区別できるようにします。
グループ ID、アーティファクト ID、パッケージング、およびバージョンは、アーティファクトの POM ファイルの対応する要素によって定義されます。以下に例を示します。
<project ... > ... <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <packaging>bundle</packaging> <version>1.0-SNAPSHOT</version> ... </project>
たとえば、前述のアーティファクトの依存関係を定義するには、以下の dependency
要素を POM に追加します。
<project ... > ... <dependencies> <dependency> <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> ... </project>
前述の依存関係に bundle
パッケージを指定する必要はあり ません。バンドルは特定タイプの JAR ファイルで、jar
はデフォルトの Maven パッケージタイプであるためです。依存関係でパッケージタイプを明示的に指定する必要がある場合は、type
要素を使用できます。