web-dev-qa-db-ja.com

mvnがmavenに正確にインストールすること

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

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

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

145
Rajeshwar

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

mvn installで、スーパーpom.xml(ルートPOM)の下のすべてのサブプロジェクトのプロジェクト構成pom.xmlに基づいて依存関係ツリーをフレーム化し、ユーザーのフォルダーの下の.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を使用して無視できます。

96
uniqrish

maven install plugin docs など、Mavenのドキュメントを見ましたか?

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

29
Dave Newton

「インストール」フェーズまでのデフォルトのライフサイクルの任意のフェーズに関連付けられたすべての構成済みプラグインのすべての目標を実行します。

https://maven.Apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

7
Puce

install:installの目標は、"Apache Maven Install Plugin"によって提供されます。

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 –ビルドライフサイクルの概要 ページを参照してください。

2
Sergey Brunov

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

Setting.xml。m2フォルダーで変更します。ローカルリポジトリへのリンクを使用して、一度ダウンロードしたjarファイルを何度もダウンロードしないようにすることができます。

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

短い答え

mvn install

  • pomで指定されたすべてのアーティファクト(依存関係)をlocalrepository(リモートソースから)に追加します。
0
Daniel Perník