サーチ…


POM構造

プロジェクトオブジェクトモデルはMavenの基本単位であり、プロジェクトの構造や依存関係などを定義します。

POMを作成するには、次のことはごくわずかです。

  • projectルート
  • modelVersion - 4.0.0に設定する必要があります
  • groupId - プロジェクトのグループのID
  • artifactId - artifactIdのID(プロジェクト)
  • version - 指定されたグループのアーティファクトのバージョン

groupIdartifactIdおよびversionMaven座標と呼ばれ、 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