【发布时间】:2024-01-18 03:43:02
【问题描述】:
在多模块项目中运行 mvn dependency:copy-dependencies 时,似乎 mvn 期望 jar 已安装在 .m2/repo 中。也许我错过了一些东西,但我无法弄清楚其中的意义......
这个问题有点类似于Maven: Why does it need dependency modules' .jars for `mvn initialize`?,但它更具体到依赖插件(我猜......)并且提到的问题没有一个好的答案,至少没有一个对我有帮助......
我有一个多模型项目,其中 modA 依赖于 modB
现在我想跑
mvn dependency:copy-dependencies -am -pl modA
这应该复制 modA 的所有依赖项及其依赖的所有模块,例如 modB 的依赖项
问题是如果 .m2/repo 不包含 modB 的 jar 则插件失败...为什么?
有趣的是,如果我只是在 .m2/repo/ 的适当位置创建一个空的“jar”文件,插件就足以成功,所以这只是证明我它甚至不查看 jar 的内容,但是它仍然需要它就位。 WTF?...
第一个问题 - 为什么?
第二个问题 - 我如何绕过这个问题而不必真正生成罐子或“触摸”它们? (我有很多,不实用……)
更新:天哪,我刚刚意识到我忘了添加一个有价值的部分......我不想复制 modB 所以我实际上从命令中排除了它的工件 ID,所以它实际上是:
mvn dependency:copy-dependencies -am -pl modA -DexcludeGroupIds=mod.b.group.id
我什至尝试过:
mvn dependency:copy-dependencies -am -pl modA -DexcludeArtifactIds=modB
因此,如果我没有这样做,那么插件将在 repo 中查找 modB 完全有道理,但是由于 modB 被排除在外,所以我希望插件不需要 modB.jar 存在。
哦,好吧,也许这个问题只需要一个错误报告......
【问题讨论】:
标签: maven maven-plugin maven-dependency-plugin