#■概要
- 以下のサイトでMavenについて学習し、学習内容をキュレーション(まとめ)する
https://www.techscore.com/tech/Java/ApacheJakarta/Maven/index/
#■Mavenとは
-
Apache Software Foundation
で開発されたソフトウェアPJ管理ツール -
Project Object Model (POM)
という考え方でPJのライフサイクルを管理 - PJの全情報は、
pom.xml
に集約される - メリットは、 開発者が短期間でPJを理解するサポート するための支援機能
- デメリットは、 Mavenを理解していないと恩恵を受けれない という制約
#■入手方法
- 以下のサイトから入手可能
https://maven.apache.org/download.cgi - 導入の参考になるQiita記事
https://qiita.com/saitoryc/items/737ee9e711f1ebe0dcfa
#■アーキテクチャ
参照元:https://www.techscore.com/tech/Java/ApacheJakarta/Maven/index/
- 各タスクを
mvnコマンド
を使用して実施できる - ビルド方法はPJが違っても同じ(Mavenのメリット)
- ローカル/リモートリポジトリには、プラグインやライブラリが配置される
- ライフサイクルの流れ
①PJ作成
②コンパイル
③ユニットテスト
④ドキュメンテーション
⑤JAR作成
⑥ローカルリポジトリへの反映
⑦リモートリポジトリへの反映
⑧PJクリア
#■Mavenの実行
-
mvnコマンド
を実行する - 実施したいタスクは、引数で指定
-
conf/setting.xml
には環境に応じた設定を行う -
-help引数
で不明箇所を確認できる
#■ライフサイクル
- 各ライフサイクルごとにポイントを確認する
##①PJ作成
-
PJの雛形(スケルトン)を作成できる
-
pom.xml
はデフォルトで作成される -
標準ディレクトリ構成が推奨されている
-
成果物の作成に必要なファイルは
src
配下に配置されるパス 解説 src/main/java javaのソースコード src/test/java テスト用のjavaのソースコード -
pom.xml
の各要素| 要素 | 解説 |
| :-- | :-- |
| modelversion | POMのバージョン
※特別変更不要 |
| groupId | PJを一意に識別する名前。
PJのルートパッケージ名を指定するのが一般的。 |
| artifactId | PJの成果物の名前。
作成するjar/warなどの名前に使用される。 |
| packaging | 作成する成果物のパッケージタイプ。
デフォルトだとjar。 |
| version | PJのバージョン。 |
| name | PJの表示名。
ドキュメント作成時などに使用される。 |
| url | PJのサイトのURL。
ドキュメント作成時などに使用される。 |
| dependencies | PJが依存するライブラリの情報。 |
$ mvn archetype:generate -DgroupId=<ID> -DartifactId=<ID>
[引数の解説]
- archetype:generate → 雛形作成を指定する引数
- -DgroupId → PJのルートパッケージ名
- -DartifactId → PJ名
##②コンパイル
- ソースコードをPJで実行可能な形式(.class)に変換する
- 作成されらclassファイルは、
target/class
配下に出力される
$ mvn compile
##③ユニットテスト
$ mvn test
-
デフォルトでは、以下の条件に合致するファイルがテストとして実行される
*/Test.java
**/*Test.java
**/*TestCase.java
- デフォルトでは、以下の条件に合致するファイルはテストから除外される
```
**/Abstract*Test.java
**/Abstract*TestCase.java
**/*$*
##④ドキュメンテーション
###1.Javadocの作成
-
target/javadoc
配下にJavadocが配置される
$ mvn javadoc:javadoc
###2.サイトの作成
- 標準では
src/site
配下に必要な情報が配置される - サイト作成に関する情報は、
src/site/site.xml
に記載する
$ mvn site
##⑤JARファイルの作成
- JARファイルの名前は、
pom.xml
内のartifactId
とversion
から決定される - JARファイルはtarget配下に配置される
mvn package
##⑥ローカルリポジトリへのインストール
- 作成したJARファイルをローカルリポジトリにインストール(反映)することができる
- インストール(反映)が完了すると、他PJからも参照できる
mvn install
##⑦リモートリポジトリへの配置
-
pom.xml
に必要となるrepository情報を設定する必要がある -
pom.xml > project/project/distributionManagement
要素の入れ子としてrepository
要素を追加する -
repositoryの子要素
|要素名|解説|
|:--|:--|
|id|リポジトリの識別子|
|name|リポジトリの名前|
|url|リポジトリの場所を示すURL|
$ mvn deploy
##⑧PJのクリーン
-
target
配下を削除する
$ mvn clean