7

我们有一个这样的maven项目结构:

Parent
 L A
 L B

A取决于B

两者都对其他库有各种依赖关系

构建它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

似乎没有任何改变。

4

2 回答 2

9

虽然这似乎不是@Tunaki 引用的确切问题,但其中的示例让我试试这个:

mvn dependency:purge-local-repository -DreResolve=false

它摆脱了异常,但未能真正重新加载我遇到问题的依赖项。在这一点上,我遇到了这个让我尝试的答案

mvn dependency:purge-local-repository -DreResolve=false -DactTransitively=false

它解决了这个问题,尽管它似乎要求与我想要实现的相反:-/

于 2016-04-27T11:33:13.587 回答
3

这看起来像是Maven 3.0.4 中的回归引入的maven-dependency-plugin(JIRA 问题MDEP-405 )错误。

来自保罗吉尔的评论

我认为发生这种情况的原因是因为为了确定要删除的全套传递依赖项,pom 需要可用。如果 pom 已经在前一个模块中解析,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 之外,我没有看到任何真正的解决方法。

于 2016-04-27T10:44:03.127 回答