POM(プロジェクトオブジェクトモデル、プロジェクトオブジェクトモデル)は、Mavenプロジェクトの基本的な作業単位であり、XMLファイルであり、プロジェクトの基本情報を含み、プロジェクトの構築方法の説明、プロジェクトの依存関係の宣言などに使用されます。
タスクまたは目標を実行すると、Mavenは現在のディレクトリでPOMを探します。POMを読み取り、必要な構成情報を取得して、ターゲットを実行します。
POMでは次の構成を指定できます。
- プロジェクトビルドプロファイル
- プロジェクトの依存関係
- プラグイン
- 実装目標
- プロジェクトバージョン
- プロジェクト開発者リスト
- 関連メーリングリスト情報
POMファイルpom.xmlを作成します。
プロジェクトのルートディレクトリにpom.xmlファイルを作成します。
pom.xml:
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>project-name</artifactId>
<!-- 版本号 -->
<version>1.0</version>
</project>
すべてのPOMファイルには、プロジェクト要素と3つの必須フィールド(groupId、artifactId、およびversion)が必要です。
- projectはプロジェクトのルートタグです
- modelVersionは4.0.0に設定する必要があります
- groupIdはエンジニアリンググループのIDです。
- ArtifactIdはプロジェクトの識別子で、通常はプロジェクトの名前です。groupIdとArtifactIdは共に、倉庫内のアーティファクトの場所を定義します
- versionはプロジェクトのバージョン番号です。アーティファクトウェアハウスでは、com.companyname.project-group:project-name:1.0など、さまざまなバージョンを区別するために使用されます。
親(スーパー)POM
親(スーパー)POMはMavenのデフォルトPOMです。すべてのPOMは親POMから継承します(この親POMが明示的に定義されているかどうかは関係ありません)。親POMには、継承可能ないくつかのデフォルト設定が含まれています。したがって、Mavenが依存関係をPOMにダウンロードする必要があると判断すると、スーパーPOMで構成されたデフォルトのウェアハウスに移動してダウンロードします。
Mavenは効果的なpomを使用して関連する目標を実行します。これにより、開発者はPom.xmlで可能な限り少ない構成(Super pomとプロジェクト独自の構成)を行うことができます。もちろん、これらの構成は書き換えることができます。
Super POMのデフォルト設定を表示するには、次のコマンドを使用します。
mvn help:effective-pom
POMラベルは「POMラベルエンサイクロペディア」を参照できます