在多模块项目中运行mvn依赖项:copy-dependencies时,似乎mvn希望jars已经安装在.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?......
第一个问题 - 为什么?
第二个问题 - 如何在不必真正生成罐子或“触摸”它们的情况下绕过问题? (我有很多而且不实用......)
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存在。
哦,也许这个问题只需要一个bug报告......
答案 0 :(得分:0)
为什么呢?我想这就是命令应该做的事情 - 复制依赖关系并且如果它们不存在则失败。该插件不关心工件的完整性。
绕过此选定组/项目的一种方法是使用插件的excludeGroupIds
和excludeArtifactIds
参数。