Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
18
Help us understand the problem. What is going on with this article?
@Dace_K

【Maven】Mavenについて

More than 3 years have 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
18
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
18
Help us understand the problem. What is going on with this article?