Maven のバックアップソース(No.1)

#author("2019-03-01T11:01:02+09:00","default:k1rou","k1rou")
*Maven [#n3f6f9be]
-ビルドツール
-https://maven.apache.org/

**POM [#tb3bd55d]
-POM(Project Object Model)
***プロジェクト定義ファイル [#q230b6b6]
-pom.xml

***定義する要素 [#db0238f5]
-groupId
-artifactId

***成果物のファイル名 [#eeb647c9]
-<artifactId>-<version>.<packaging>

***依存ライブラリの追加 [#gc5e128c]
-dependency要素を追加する
-要素を追加してmvn packageコマンドを実行すると、ライブラリをDLする。
-WEBINF/lib/<xxx>
-スコープを意識して追加する必要がある。

***依存ライブラリのスコープ [#f9abb1b9]
-ライブラリの利用目的・場所のこと。
-compile -常に利用(デフォルト)
-provided -JDKやコンテナによって提供される。成果物に含めない。
-runtime -実行時のみ必要
-test -テストの時のみ必要
-system -リポジトリを検索しない。ライブラリの場所を明示的に指定する

**プロキシ設定 [#y2f19d5e]
-~/.mw/settings.xml

**フォルダ構成 [#j1b114f2]
-/src/main/java
-/src/main/resources
-/src/test/java

**リポジトリ [#f988eb8a]
-ローカルリポジトリ
--~/.m2/repository/

-リモートリポジトリ
--セントラルリポジトリ -http://repo1.maven.org/maven2/
--サードパーティリポジトリ
--インハウスリポジトリ(社内リポジトリ)

-Maven Repository
--セントラルリポジトリに登録されているライブラリの情報を掲載している。
--http://mvnrepository.com

**ゴール [#v1969bef]
***コマンド [#y955dd9f]
-maven プラグイン名:ゴール名

-ヘルプの表示
--mvn -h

-mvn -DgroupId=<xxx>
-mvn -DartifactId=<xxx>
-mvn -DarchetypeArtifactId=<xxx>

--ローカルリポジトリに登録
-mvn install:install-file -Dfile=<xx> -DgroupId=<xx> -DartifactId=<xx> -Dversion=<xx> -Dpackaging=<xx>

**フェーズ [#o964ff99]
-compile
--ソースコードをコンパイルしてクラスファイルを作成する。

-package
--クラスファイルをJARやWARにまとめる。

-install
--packageフェーズにて生成されたファイル(JARやWAR)をローカルリポジトリに配置する。
--コンパイル、パッケージ化が自動で行われる。

-deploy
--packageフェーズにて生成されたファイルをリモートリポジトリに配置する。

-test
--testフォルダ内のプログラムを使ってユニットテストを実行する。

**ビルドライフサイクル [#y682ce95]
-default
--validate→compile→test→package→integration-test→verify→install→deployフェーズが
実行される。

-clean
--クラスファイルなどの生成されたファイルを削除する。(pre-clean→clean→post-cleanフェーズが実行される)

-site
--プロジェクトサイトの生成と配置を行う。(pre-site→site→post-site→site-deployフェーズが実行される)

**Mavenコマンド [#mc0b43ab]
-mvn install
-mvn clean
-mvn test

**対応するIDE [#od8e8617]
-[[Eclipse]]
-[[IntelliJ IDEA]]
-[[NetBeans]]

**Eclipse [#x79c4ff5]
-Maven Eclipse Plugin
--.classpass などを作成する

-Maven Integration for Eclipse(m2e)

**参考サイト [#reada263]
--http://blog.pepese.com/entry/20130509/1368096420

**関連用語 [#r6241e3e]
-[[Java]]
-[[Gradle]]