マルチモジュール プロジェクトで mvn dependency:copy-dependencies を実行すると、mvn は jar が .m2/repo に既にインストールされていることを期待しているようです。何かが足りないのかもしれませんが、その意味
がわかりません... しかし、それは依存関係プラグインに固有のものであり(私は推測します...)、言及された質問には良い答えがありません.少なくとも私を助けるものはありません...
modA が modB に依存するマルチモデル プロジェクト
を実行したい
mvn dependency:copy-dependencies -am -pl modA
これにより、modA のすべての依存関係と、それが依存するすべてのモジュール (たとえば、modB も) がコピーされます。
問題は、.m2/repo に modB の jar が含まれていない場合、プラグインが失敗することです...なぜですか?
面白いことに、.m2/repo/ の適切な場所に空の「jar」ファイルを作成するだけで、プラグインが成功するのに十分なので、jar の内容を見ていないことを証明できますが、それはまだ所定の位置にある必要があります。えっ?...
最初の質問 - なぜですか?
2 番目の質問 - jar を実際に生成したり、それらに「触れたり」せずに問題を回避するにはどうすればよいですか? (私はたくさんあり、実用的ではありません...)
更新: OMG、貴重な部分を追加するのを忘れていたことに気付きました... modB をコピーしたくないので、実際にはそのアーティファクト ID をコマンドから除外したので、実際には次のようになりました。
mvn dependency:copy-dependencies -am -pl modA -DexcludeGroupIds=mod.b.group.id
私も試しました:
mvn dependency:copy-dependencies -am -pl modA -DexcludeArtifactIds=modB
したがって、それを行わなかった場合、プラグインがリポジトリで modB を検索することは完全に理にかなっていますが、modB が除外されているため、プラグインが modB.jar の存在を必要としないことを期待していました。
まあ、この質問はバグレポートにする必要があるかもしれません...