■概要
- 以下のサイトで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