我们有一个像这样的maven项目结构:
Parent
L A
L B
A
取决于B
两者都有其他libs的各种依赖
使用mvn clean install
构建此代码可以正常工作,但是当我们尝试使用
mvn dependency:purge-local-repository
我们收到一条错误消息,指出它无法将依赖关系解析为B:jar:snapshot-version
:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:purge-local-repository (default-cli) on project A: Failed to refresh project dependencies for: A:jar:4.0.1-SNAPSHOT: required artifacts missing:
[ERROR] B:jar:6.0-5
我目前的解释是,在实际构建期间B
首先获得构建并且可以得到解决,但是在清除期间没有任何构建因此解析失败。但是项目就在那里,其依赖关系应该被清除。我该如何解决这个问题?
-DactTransitively=false
似乎没有任何改变。
答案 0 :(得分:5)
虽然它似乎不是确切的问题referenced by @Tunaki但是我在那里尝试这个例子:
mvn dependency:purge-local-repository -DreResolve=false
哪个摆脱了异常,但未能真正重新加载我遇到问题的依赖。在那一刻,我遇到了this answer让我尝试
mvn dependency:purge-local-repository -DreResolve=false -DactTransitively=false
解决了这个问题,虽然它似乎要求与我想要实现的相反: - /
答案 1 :(得分:2)
这看起来像是在Maven 3.0.4中通过回归引入的maven-dependency-plugin
(JIRA问题MDEP-405)的错误。
我认为发生这种情况的原因是因为为了确定要删除的全套传递依赖项,poms需要可用。如果poms已在前一个模块中解析过,Maven将不会再次重新解析它们而只是失败。因此,依赖性对于已从本地存储库中删除的文件没有问题,但是当尝试在同一版本中解析同一文件两次时,maven依赖关系解析代码失败。
您可以尝试使用Maven 3.0.3进行构建,因为Maven 3.0.4中存在此更改: http://mail-archives.apache.org/mod_mbox/maven-dev/201210.mbox/%3C5752023.Vp0WJBo1vZ%40bigmax%3E
这与回归MNG-5366相关联,目前尚未解决。
除了降级Maven之外,我没有看到任何真正的解决方法。