参考サイト: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
