
まずは、Mavenのビルド設定ファイルである「pom.xml」の基本的なことを学習していきましょう。
「pom.xmlを制するものが、Mavenを制する」といっても過言ではないくらい重要なファイルになります。
まだ、Eclipseで、Mavenプロジェクトを作成されていない場合は、下記の手順に沿って作成しましょう。
pom.xmlとは?
Eclipse上では
このファイルは、「プロジェクトのビルド内容を設定するファイル」です。
Eclipseで開くと、下記のようにpomエディタという、pom.xmlをわかりやすく編集するためのエディタが開きます。
「依存関係」と表示されているタブは下記のようになっています。
POMとは?
POMとは、そもそも「Project Object Model」の略で、「プロジェクトに関する様々な情報を記述してくださいよ」というファイルになります。
Mavenプロジェクトを作成した段階だと下記のような内容になっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<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.mvntest</groupId> <artifactId>mvntest-app</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mvntest-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> |
基本設定項目
項目 | 説明 |
---|---|
<project> | ルートノード |
├<modelVersion> | モデルバージョン、Mavenの新バージョンを使う場合はここの値を変えます。 |
├<groupId> | プロジェクトの開発者IDを指定します。 |
├<artifactId> | プロジェクトに割り当てるIDです。 |
├<version> | プログラムの現時点でのバージョンを指定します。生成されたJARファイルの名前にも使われます。 |
├<packaging> | パッケージ化する場合の種類を指定します。(jarやzip等) |
├<name> | アプリケーションの名前を指定します。(自由) |
├<url> | プロジェクトのWebサイトのURLを指定します。 |
└<properties> | pom.xmlで利用される属性を指定します。 |
<project>
pom.xmlの「ルートノード」です。
ルートノードの属性としては、下記の記述があります。
1 |
xmlns="http://maven.apache.org/POM/4.0.0" |
上記文では、POMのバージョンを指定しています。(4.0.0)
1 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
上記文では、XMLスキーマの指定がしてありますが、特に、Mavenに関係するものというよりは、XML関係の記述です。
1 |
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" |
上記文では、POM4.0のスキーマを読み込んでいます。
依存するライブラリの設定項目
pom.xmlの特徴の一つとして、「必要なライブラリの管理」をあげられますが、それを設定している項目になります。
プログラムが、どのプログラムに依存しているか記述しておくことで、自動ダウンロードさせることが可能になります。
項目 | 説明 |
---|---|
<dependencies> | 「依存性」(このプログラムが、どのプログラムに依存しているか)に関する記述を行うタグです。 |
└<dependency> | 依存するライブラリ情報を具体的に記述していきます。 |
├<groupId> | 必須項目、グループIDを指定します。 |
├<artifactId> | 必須項目、アーティファクトIDを指定します。 |
├<version> | 使用するプログラムのバージョンを指定します。省略した場合は、プログラムの最新版が使用されます。 |
└<scope> | このプログラムが利用される範囲を示します。通常は、必要ないですが、テストのみに使う場合等に、使うものと理解しましょう。 |
scopeの種類
項目 | 説明 |
---|---|
compile | デフォルト設定になります。コンパイル時に、適用される。 |
provided | |
runtime | |
test | ユニットテスト実行時のみに利用される。もし、scopeを使う場合は、基本はこれを指定することになる。 |
system |
この記事へのコメントはありません。