jarとjar-no-forkの目標の違いについて詳しく説明してください。
公式サイトからは見えますが、はっきりとはわかりません。
私の解釈:jarゴールはコマンド ラインから実行することを意図しており ( mvn source:jar)、jar-no-forkライフサイクルにバインドすることを意図しています。
目標のドキュメントを見るとjar、キー フレーズは「それ自体を実行する前に、ライフサイクル フェーズの生成ソースの実行を呼び出す」です。source:jarライフサイクルの一部としてゴールを実行するように POM を構成すると、Maven はバインドされたすべてのゴールとその前のゴールを再実行generate-sourcesします。多くのプラグイン ゴールが検証フェーズまたは初期化フェーズにバインドされている場合、それらすべてが 2 回実行され、ビルド時間が長くなります。
対照的にjar-no-fork、ビルド ライフサイクルにアタッチするのは、後でどこかのフェーズにバインドされることを想定しておりgenerate-sources、バインドされたゴールを再度実行しないためです。
-XMaven 3 を実行し、実行されるプラグインの実行を確認することで、この動作を確認しました。