「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 には、ライフサイクル フェーズへのプラグイン バインディングのデフォルト セットを定義するパッケージングの概念があります。たとえば、パッケージング (要素が含まれていない限りデフォルト) は、デフォルトでフェーズにバインドされ、フェーズにバインドされます。jarpom.xml<packaging>...</packaging>jar:jarpackageinstall:installinstall
したがって、入力すると
$ mvn package
Maven は、(ライフサイクルから、または pom でプラグイン実行を指定することによって) バインドされたプラグインを実行しながら、ライフサイクル フェーズ全体を実行します。
入力するとき
$ mvn jar:jar
Maven は、jar プラグインの jar ゴールを実行するだけです。
ライフサイクルは、100 回中 99 回、使用したいものです。
通常、プラグイン ゴールを直接呼び出したい場合は次のとおりです。
jetty:runWeb アプリケーション サーバーを起動するには
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。