Apache Maven
POM - プロジェクトオブジェクトモデル
サーチ…
POM構造
プロジェクトオブジェクトモデルはMavenの基本単位であり、プロジェクトの構造や依存関係などを定義します。
POMを作成するには、次のことはごくわずかです。
-
project
ルート -
modelVersion
-4.0.0
に設定する必要があります -
groupId
- プロジェクトのグループのID -
artifactId
-artifactId
のID(プロジェクト) -
version
- 指定されたグループのアーティファクトのバージョン
groupId
、 artifactId
およびversion
はMaven座標と呼ばれ、 GAVで短縮されることもあります。それらは、Mavenリポジトリ内のプロジェクトの結果のアーティファクトを一意的に識別します(ユニバース全体で行う必要があります)。
最小限のサンプルPOMは次のようになります。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>sample-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
POM継承
継承はPOMの最大の資産です。スーパーPOMから子POMまで、次のことが管理できます。
- 依存関係
- 開発者と貢献者
- プラグインリスト(レポートを含む)
- 一致するIDを持つプラグインの実行
- プラグインの設定
以下は継承を有効にする
<parent>
<groupId>com.sample</groupId>
<artifactId>sample-app-parent</artifactId>
<version>1.0.0</version>
</parent>
POM構造は次のようになります
<project>
<parent>
<groupId>com.sample</groupId>
<artifactId>sample-app-parent</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>sample-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
POM集約
マルチモジュールプロジェクトのモジュールは、階層構造から集約されます。
ルートpom
パッキングは次のようになります。
<packaging>pom</packaging>
以下は、プロジェクトのディレクトリ構造です。
|-- sample-app
\ `-- pom.xml
|-- sample-module-1
| `-- pom.xml
|-- sample-module-2
| `-- pom.xml
ルートPOM:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>sample-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>sample-module-1</module>
<module>sample-module-2</module>
</modules>
<dependencyManagement>
...
</dependencyManagement>
</project>
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow