「mvn install」コマンドと jar:jar プラグインの使用の違いは何ですか?
「インストール」がjarを構築しているように見えることは明らかなので、jar:jarプラグインの必要性は何なのか疑問に思っています。
「mvn install」コマンドと jar:jar プラグインの使用の違いは何ですか?
「インストール」がjarを構築しているように見えることは明らかなので、jar:jarプラグインの必要性は何なのか疑問に思っています。
Maven コマンドラインで指定できるものには、次の 2 種類があります。
:
ライフサイクル フェーズ (これらには文字は含まれません)
プラグインの目標 (これらには少なくとも 1 つの:
文字が含まれます。プラグインをどの程度完全に指定するかに応じて、short-name:goal
またはgroupId:artifactId:goal
またはになりますgroupId:artifactId:version:goal
)
デフォルト、クリーン、サイトの3 つのライフサイクルがあります。各ライフサイクルは、一連のフェーズで構成されています。ライフサイクルでフェーズを指定すると、Maven は指定されたフェーズまでのそのライフサイクルのすべてのフェーズを順番に実行します。
プラグイン ゴールを指定すると、そのプラグイン ゴールが呼び出され、そのプラグイン ゴールのみが呼び出されます。
Maven には、ライフサイクル フェーズへのプラグイン バインディングのデフォルト セットを定義するパッケージングの概念があります。たとえば、パッケージング (要素が含まれていない限りデフォルト) は、デフォルトでフェーズにバインドされ、フェーズにバインドされます。jar
pom.xml
<packaging>...</packaging>
jar:jar
package
install:install
install
したがって、入力すると
$ mvn package
Maven は、(ライフサイクルから、または pom でプラグイン実行を指定することによって) バインドされたプラグインを実行しながら、ライフサイクル フェーズ全体を実行します。
入力するとき
$ mvn jar:jar
Maven は、jar プラグインの jar ゴールを実行するだけです。
ライフサイクルは、100 回中 99 回、使用したいものです。
通常、プラグイン ゴールを直接呼び出したい場合は次のとおりです。
jetty:run
Web アプリケーション サーバーを起動するには
surefire:test
テストをすばやく再実行する (通常は-Dtest=...
特定のテストを指定する)
release:prepare release:perform
コードをリリースする
versions:...
バージョン関連のものの更新またはクエリを実行するため。versions:display-plugin-updates
ship:ship
またはcargo:deployer-deploy
、構築したアーティファクトをホスティング環境にプッシュ (出荷) する
install
アーティファクトをローカル (マシン上の) Maven リポジトリに配置しますが、配置jar:jar
しません。ライブラリを呼び出しjar:jar
て、別のプロジェクトでそのライブラリを参照しようとすると、ローカル リポジトリにはありません。
mvn package
また、 を使用するよりも、パッケージングを行うよりクリーンな方法であることに注意してくださいjar:jar
。
mvn install
コマンドは、インストールフェーズまでのMaven ライフサイクルを「実行」します。これは、以前のすべてのフェーズ (パッケージフェーズを含む) が実行されることを意味します。
単純な Maven jar プロジェクトでは、パッケージ フェーズは maven-jar-plugin にバインドされます。したがって、実行mvn install
はある時点で実行されますjar:jar
。