POM (Project Object Model)とは、MavenプロジェクトをXMLで表現したものである。POMはpom.xmlという名前のファイルに保存される。
POMの要素を次に示す。
pom.xmlの例を示す。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.segakuin</groupId>
<artifactId>foo</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>Example Project</name>
<url>https://segakuin.com</url>
</project>
projectはPOMのルート要素である。
<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">
</project>
次に示す属性を project 要素に指定できる。
<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>
<groupId>com.segakuin</groupId>
<artifactId>example</artifactId>
<version>1.0</version>
<dependencies>
</dependencies>
</project>
なし
POM (Project Object Model) のバージョンを表す。必須要素で省略できない。
POM のバージョンをテキストで指定する。現在指定できるバージョンは 4.0.0 のみである。
<modelVersion>4.0.0</modelVersion>
project
プロジェクトを一意に識別する名前で、プロジェクトのルートパッケージ名を指定するのが一般的である。必須要素で省略できない。
グループIDをテキストで指定する。
<groupId>com.segakuin</groupId>
project
プロジェクトの成果物の名前。作成するJAR、WAR又はEARファイルなどの名前に使用される。必須要素で省略できない。
アーティファクトIDをテキストで指定する。
<artifactId>example</artifactId>
project
プロジェクトのバージョンを表す。必須要素で省略できない。
バージョンをテキストで指定する。
<version>1.0</version>
project
作成するパッケージングのタイプ。jar
(デフォルト)、war
、ear
などがある。
プロジェクトが依存するライブラリ群。
<dependencies>
<dependency>
</dependency>
</dependencies>
project
プロジェクトが依存するライブラリの情報。
<dependency>
<groupId>com.segakuin</groupId>
<artifactId>example</artifactId>
<version>1.0</version>
<type>jar</type>
</dependency>
dependencies
依存関係のタイプを表す。デフォルト値は jar である。
依存関係のタイプをテキストで指定する。
<type>jar</type>
dependency
scope要素には、依存するライブラリがいつクラスパスに追加されるかを指定する。
次に示す列挙子のいずれかをテキストで指定する。
<scope>compile</scope>
<scope>provided</scope>
<scope>runtime</scope>
<scope>test</scope>
<scope>system</scope>
dependency
プロジェクトの表示名。ドキュメントを作成するときなどに使用される。
プロジェクトのサイトのURL。ドキュメントを作成するときなどに使用される。
プロジェクトのホームページのURLをテキストで指定する。
<url>https://segakuin.com/</url>
<build>
<defaultGoal>install</defaultGoal>
<directory>${basedir}/target</directory>
<finalName>${artifactId}-${version}</finalName>
</build>
The Apache Software Foundation (2022) Introduction to the POM
The Apache Software Foundation (2022) POM Reference