31

jarとjar-no-forkの目標の違いについて詳しく説明してください。

公式サイトからは見えますが、はっきりとはわかりません。

4

1 に答える 1

50

私の解釈:jarゴールはコマンド ラインから実行することを意図しており ( mvn source:jar)、jar-no-forkライフサイクルにバインドすることを意図しています。

目標のドキュメントを見るとjar、キー フレーズは「それ自体を実行する前に、ライフサイクル フェーズの生成ソースの実行を呼び出す」です。source:jarライフサイクルの一部としてゴールを実行するように POM を構成すると、Maven はバインドされたすべてのゴールとその前のゴールを再実行generate-sourcesします。多くのプラグイン ゴールが検証フェーズまたは初期化フェーズにバインドされている場合、それらすべてが 2 回実行され、ビルド時間が長くなります。

対照的にjar-no-fork、ビルド ライフサイクルにアタッチするのは、後でどこかのフェーズにバインドされることを想定しておりgenerate-sources、バインドされたゴールを再度実行しないためです。

-XMaven 3 を実行し、実行されるプラグインの実行を確認することで、この動作を確認しました。

于 2012-05-12T22:55:22.507 に答える