Mavenを使い始めたばかりで、特定のディレクトリでmvn install
を実行するように言われました。
mvn install
は正確に何をしますか?
現在のフォルダーでpom.xml
を探し、そのファイルで指定されている指示に従って開始すると思います。あれは正しいですか?
お気づきかもしれませんが、MavenはApacheが提供するビルド自動化ツールであり、依存関係の管理以上のことを行います。必要な依存関係をすべてダウンロードするAntとMakefileのピアとして作成できます。
mvn install
で、スーパーpom.xml
(ルートPOM)の下のすべてのサブプロジェクトのプロジェクト構成pom.xml
に基づいて依存関係ツリーをフレーム化し、ユーザーのフォルダーの下の.m2
というディレクトリに必要なすべてのコンポーネントをダウンロード/コンパイルします。これらの依存関係は、プロジェクトをエラーなしでビルドするために解決する必要があり、mvn install
は、ほとんどの依存関係をダウンロードできるユーティリティの1つです。
さらに、Mavenにはdependency:resolve
のような他のユーティリティがあり、特定のケースで個別に使用できます。 mvnのビルドライフサイクルは次のとおりです。
process-resources
compile
process-test-resources
test-compile
test
package
install
deploy
このmvnのテストフェーズは、フラグ-DskipTests=true
を使用して無視できます。
maven install plugin docs など、Mavenのドキュメントを見ましたか?
Nutshellバージョン:プロジェクトをビルドし、ローカルリポジトリにインストールします。
「インストール」フェーズまでのデフォルトのライフサイクルの任意のフェーズに関連付けられたすべての構成済みプラグインのすべての目標を実行します。
https://maven.Apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
install:install
の目標は、"Apache Maven Install Plugin"によって提供されます。
Apache Mavenインストールプラグイン
インストールプラグインは、インストールフェーズ中にローカルリポジトリにアーティファクトを追加するために使用されます。インストールプラグインは、POMの情報(
groupId
、artifactId
、version
)を使用して、ローカルリポジトリ内のアーティファクトの適切な場所を決定します。ローカルリポジトリは、ビルドに必要なすべてのアーティファクトが保存されるローカルキャッシュです。デフォルトでは、ユーザーのホームディレクトリ(
~/.m2/repository
)内にありますが、~/.m2/settings.xml
要素を使用して<localRepository>
で場所を構成できます。
そうは言っても、正確な目標は次のとおりです。
install:install
は、プロジェクトのメインアーティファクト(JAR、WARまたはEAR)、そのPOM、および特定のプロジェクトによって生成された添付アーティファクト(ソース、javadocなど)を自動的にインストールするために使用されます。
目標の詳細については、 Apache Mavenインストールプラグイン-install:install ページを参照してください。
一般的なビルドライフサイクルの詳細およびビルドライフサイクルの目標の場所については、 Maven –ビルドライフサイクルの概要 ページを参照してください。
-DskipTests=true
は-Dmaven.test.skip=true
の短縮形です
Setting.xmlを。m2フォルダーで変更します。ローカルリポジトリへのリンクを使用して、一度ダウンロードしたjarファイルを何度もダウンロードしないようにすることができます。
<url>file://C:/Users/admin/.m2/repository</url>
</repository>
短い答え
mvn install
- pomで指定されたすべてのアーティファクト(依存関係)をlocalrepository(リモートソースから)に追加します。