Java
Maven

【Maven】Mavenについて

More than 1 year has passed since last update.


■概要


■Mavenとは



  • Apache Software Foundationで開発されたソフトウェアPJ管理ツール


  • Project Object Model (POM)という考え方でPJのライフサイクルを管理

  • PJの全情報は、pom.xmlに集約される

  • メリットは、 開発者が短期間でPJを理解するサポート するための支援機能

  • デメリットは、 Mavenを理解していないと恩恵を受けれない という制約


■入手方法


■アーキテクチャ

画像
参照元: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内のartifactIdversionから決定される

  • 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