参考サイト:http://www.techscore.com/tech/Java/ApacheJakarta/Maven/index/
Mavenとは
Maven
はプロジェクト管理ツールです。プロジェクトに関する色々な情報をPOM
に集約し、POM
の情報に基づきプロジェクト全体を管理します。
Maven
を使用すると、プロジェクトのライフサイクルに含まれるコンパイルやテストなどの各作業をコマンド一つで行うことができます。
- リモートリポジトリとローカルリポジトリは、どちらもプラグインやライブラリが置かれる場所です。
-
Maven
は必要なプラグインやライブラリをリモートリポジトリからダウンロードし、それをローカルリポジトリに保存します。 - 各プロジェクトはローカルリポジトリに保存されているライブラリを参照します。
- ローカル環境にある全てのプロジェクトの間でライブラリを共有することができます。
- リモートリポジトリは独自のものを用意することもできます。
例えば、社内用のリポジトリを用意して、社内で作成したプロジェクトはそこに公開するという使い方ができます。
POMについて
pom.xml
はプロジェクトに関する情報を持つファイルです。
project 要素以下の各要素が持つ意味
要素 | 内容 |
---|---|
modelVersion | POMのバージョン |
groupId | プロジェクトを一意に識別する名前。プロジェクトのルートパッケージ名を指定するのが一般的です。 |
artifactId | プロジェクトの成果物の名前。 作成する JAR や WAR, EAR ファイルなどの名前に使用されます。 |
packaging | 作成する成果物のパッケージング・タイプ。 jar (デフォルト), war, ear などがあります。 |
version | プロジェクトのバージョン。 |
name | プロジェクトの表示名。 ドキュメントを作成するときなどに使用されます。 |
url | プロジェクトのサイトの URL。 ドキュメントを作成するときなどに使用されます。 |
dependencies | プロジェクトが依存するライブラリの情報。 |
コンパイル
mvn compile
src/main/java/
配下のソースファイルのコンパイルが行われます。
コンパイルにより作成されたクラスファイルはtarget/classes
ディレクトリに出力されます。
テスト
mvn test
デフォルトでは、以下のパターンにマッチするファイルがテストとして実行されます。
**/Test*.java
**/*Test.java
**/*TestCase.java
また、以下のファイルはデフォルトで除外されます
**/Abstract*Test.java
**/Abstract*TestCase.java
**/*$*
パッケージング
mvn package
成功するとtarget
ディレクトリに**.jar
のようなファイルが作成されます。
作成されるファイルの名前は、pom.xml
に記述されている artifactId
とversion
から決定されます。
拡張子は,pom.xml
に記述されているpackaging
から決定されます。
ローカルリポジトリへのインストール
mvn install
作成したパッケージングファイルはローカルリポジトリにインストールすることで、ローカルにある他のプロジェクトから参照することができるようになります。
リモートリポジトリへのデプロイ
リモートリポジトリに配備するには、事前にリモートリポジトリの情報を pom.xml に記述しておく必要があります。
リモートリポジトリの情報は、distributionManagement
要素の入れ子としてrepository
要素を追加します。 repository
の子要素にはid (リポジトリの識別子)
, name (リポジトリの名前)
, url (リポジトリの場所を示す URL)
などが指定可能です。
設定例
<distributionManagement>
<repository>
<id>deploy-repository</id>
<name>repository-name</name>
<url>http://hoge/deployRepository</url>
</repository>
</distributionManagement>
作成したパッケージングファイルをリモートリポジトリに配備するには、次のコマンドを実行します
mvn deploy