目次
pom.xmlとは
POM はProject Object Modelの略です。プロジェクトの情報、依存するライブラリ等を記述します。タスクを実行すると、Mavenはカレントディレクトリのpom.xmlを参照し、設定を読み込みます。いくつかのデフォルトの設定があります。
- ビルド結果はtarget/に出力される
- ソースはsrc/main/javaに配置する
- テストコードはsrc/test/javaに配置する
pom.xmlの定義
以下で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>
以下はプロジェクトの情報を定義しています。
<groupId>org.example</groupId>
<artifactId>mvn-sample-intellij</artifactId>
<version>1.0-SNAPSHOT</version>
<name>mvn-sample-intellij</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
要素 | 説明 |
---|---|
groupId | 組織を指定するID |
artifactId | 組織の中でユニークとなるプログラムのID |
version | プログラムのバージョン |
name | プログラムの名称 |
url | プログラムまたは組織のURL |
依存ライブラリの設定とスコープ
以下はプロジェクトが依存するライブラリを定義している箇所です。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
groupId | グループIDを指定します。必須項目です。 |
artifactId | アーティファクトIDを指定します。必須項目です。 |
version | 使用するライブラリのバージョンを指定します。 省略すると通常は最新バージョンが使用されます。 |
scope | ライブラリが適用される範囲を指定します。 compile, propvided, runtime, test, systemのいずれかを指定します。 省略するとcopmileが指定されます。 |
scope
以下ページより引用
スコープ | 説明 |
---|---|
compile | scope の指定を省略した場合のデフォルト値です。全ての状況でクラスパスに追加されます。 |
provided | ライブラリが JDK やコンテナによって提供される場合に指定します。コンパイル時のみクラスパスに追加されます。 |
runtime | 実行時のみに必要な場合に指定します。テストの実行および通常の実行のときにクラスパスに追加されます。 |
test | テストのときのみ必要な場合に指定します。テストのコンパイルと実行のときにクラスパスに追加されます。 |
system | 明示的にクラスパスに追加する場合に指定します。このスコープのライブラリは常に有効であるとみなされ、リポジトリの検索は行われません。 |
依存ライブラリの場所
依存ライブラリは、mavenのリポジトリで管理されている。