mvn install mavenは正確に何をしますか


165

Mavenを使い始めたばかりmvn installで、特定のディレクトリで実行するように言われました。

mvn install正確には何をしますか?

私はそれがpom.xml現在のフォルダーを探し、そのファイルで指定された指示に従って開始すると思います。あれは正しいですか?


回答:


124

ご存知かもしれませんが、Mavenは、Apacheが提供するビルド自動化ツールであり、依存関係の管理以上のことを行います。必要なすべての依存関係をダウンロードするAntとMakefileのピアとして作成できます。

mvn install、それはプロジェクトの構成に基づいて依存ツリーフレームpom.xmlのすべてのサブスーパー中のプロジェクトにpom.xml(ルートPOM)およびダウンロード/というディレクトリに必要なすべてのコンポーネントをコンパイルし.m2、ユーザーのフォルダの下に。プロジェクトをエラーなしでビルドするには、これらの依存関係を解決する必要がmvn installあり、依存関係のほとんどをダウンロードできるユーティリティの1つです。

さらに、Mavenにdependency:resolveは、特定のケースで個別に使用できるユーティリティが他にもあります。MVNのビルドのライフサイクルは、以下の通りである:ライフサイクルバインディング

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

このmvnのテストフェーズは、フラグを使用して無視できます-DskipTests=true


9
余談ですが、テストに関連するすべての目標をスキップする場合は、-Dmaven.test.skip = trueを使用してください(-DskipTests = trueの代わりに)
Manoj Shrestha

この答えは、installコマンドが最終的にすることを明確にするために失敗したインストールローカルリポジトリでは、ローカルにアーティファクトを、。
PeriChandra

34

Mavenのドキュメント、たとえばMavenのインストールプラグインのドキュメントを確認しましたか?

Nutshellバージョン:プロジェクトをビルドし、ローカルリポジトリにインストールします。


オープンソースライブラリで「mvn install」を実行するとします。次に、最初にコンパイルしたオープンソースライブラリを使用するプロジェクトで「mvn install」を実行します。「mvn install」を実行すると、JARは最初にローカルリポジトリで検索されますか?それともPOMファイルに依存していますか?
ケビンメレディス

1
@Kevinそれは要点なので、最初にローカルに移動する必要があります。ローカルリポジトリにない場合は、構成済みのリポジトリ(またはデフォルト)を調べ、見つかった場合はローカルリポジトリにインストールします。私はそれを調べないとどうなるかわかりませんが、常にローカルリポジトリをスキップするように構成できると思います。
デイブニュートン

17
持っているあなたは Mavenのための標準的なドキュメントを見て?Apacheのサイトでは、mvn installの目的がこう説明されています。「ほとんどの場合、install:installの目標には構成は必要ありません。プロジェクトのPOMとアーティファクトファイルをデフォルトのビルドライフサイクルのインストールフェーズでインストールする必要があります。」これは、Apacheのドキュメントが「mvn install」が実際に何をしているのかを説明できないため、ポスターのような人々や私自身が答えを探しているためです。完全に合理的な質問。
bethesdaboys 2013


6

install:install目標は、«のApache Mavenのプラグインをインストールしてください»で提供されています。

Apache Mavenインストールプラグイン

インストールプラグインは、インストールフェーズ中に、アーティファクトをローカルリポジトリに追加するために使用されます。インストールプラグインPOM(内の情報を使用してgroupIdartifactIdversionローカルリポジトリ内のアーチファクトのための適切な位置を決定します)。

ローカルリポジトリは、ビルドに必要なすべてのアーティファクトが格納されるローカルキャッシュです。デフォルトでは、ユーザーのホームディレクトリ(~/.m2/repository)内にありますが~/.m2/settings.xml<localRepository>要素を使用して場所を設定できます。

Apache Mavenインストールプラグイン-はじめに

そうは言っても、正確な目標は次のとおりです。

install:install は、プロジェクトのメインアーティファクト(JAR、WAR、またはEAR)、そのPOM、および特定のプロジェクトによって生成された添付アーティファクト(ソース、javadocなど)を自動的にインストールするために使用されます。

Apache Mavenインストールプラグイン-はじめに

目標の詳細については、Apache Mavenインストールプラグイン-install:installページを参照してください。

一般的なビルドライフサイクルの詳細と、ビルドライフサイクルの目標の場所については、Maven –ビルドライフサイクルの概要ページを参照してください。


3

短い答え

mvn install

  • pomで指定されたすべてのアーティファクト(依存関係)を(リモートソースから)ローカル リポジトリに追加します。

2

-DskipTests=true の短い形式です -Dmaven.test.skip=true

変化行いますSetting.xmlあなたの中に.m2フォルダを。ダウンロードされたjarが何度もダウンロードされないように、ローカルリポジトリへのリンクを使用できます。

<url>file://C:/Users/admin/.m2/repository</url>
 </repository>

0

mvn installの主なジョブは、1)依存関係ダウンロードし2)プロジェクトをビルドすることです。

現在、ジョブ1はintellij(POMでの依存関係のダウンロード)などのIDによって管理されています。

mvn installは現在、主にジョブ2で使用されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.