获取缺少依赖项的maven项目的依赖关系树

时间:2012-03-14 05:18:55

标签: maven dependencies maven-3

首先,让我首先说mvn dependency:tree在我的方案中不起作用。 我正在研究已经存在的代码库,它会导致构建失败。问题是maven repos(包括nexus)在这个项目中没有传递依赖的POM(org.apache.ws.security:wss4j:pom:1.5.2)。

我想找到这种依赖的来源。它可能是一个传递依赖,因为它没有列在项目的pom中,也没有列在父poms中。调用mvn dependency:tree不起作用,因为它也因我使用mvn install(连接超时)时出现的相同错误而失败。错误如下所示。

那么,我怎样才能确定哪个依赖尝试下载这个pom?我想找到依赖树的一般答案,而不是关注上面提到的wss4j pom。

[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Sample/XKMS 4.5.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://ws.zones.apache.org/repository2/org/apache/ws/security/wss4j/1.5.2/wss4j-1.5.2.pom

[WARNING] The POM for bouncycastle:bcprov-jdk13:jar:132 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:10.155s
[INFO] Finished at: Wed Mar 14 10:35:20 IST 2012
[INFO] Final Memory: 7M/490M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project wso2appserver-samples-xkms: Could not resolve dependencies 
for project org.wso2.appserver:wso2appserver-samples-xkms:jar:4.5.0-SNAPSHOT: Failed to collect dependencies for [org.wso2.xkms:xkms:jar:2.2 (compile)]: Failed to read artifact descriptor for org.apache.ws.security:wss4j:jar:1.5.2: 
Could not transfer artifact org.apache.ws.security:wss4j:pom:1.5.2 from/to ws-zones-repository (http://ws.zones.apache.org/repository2): Error transferring file: Connection timed out -> [Help 1]

3 个答案:

答案 0 :(得分:32)

mvn dependency:tree --debug

在我的情况下失败之前输出树。

答案 1 :(得分:4)

找到这个的一种方法是为Eclipse安装m2eclipse Maven插件。 (如果您已经使用Eclipse,那就是。)该名称与版本无关;它至少与Maven 2.2.1和3一起使用。

http://www.eclipse.org/m2e/

然后,在Eclipse中打开根pom,然后单击Dependency Hierarchy选项卡。在右侧将是项目将下载的所有依赖项,在左侧是依赖项要求的内容。如果依赖项显示(managed from X),则表示另一个依赖项需要此依赖项的不同版本。但是,这并非完美无缺。我还是看了一些其他的poms来找到我正在寻找的依赖。但它应该让生活更轻松,至少指出你正确的方向。

答案 2 :(得分:0)

您发现了一个错误 - 请参阅WSS-136

使用存储库:http://maven.alfresco.com/nexus/content/groups/public/

http://maven.alfresco.com/nexus/content/groups/public/org/apache/ws/security/wss4j/1.5.2/

解决方法是搜索其他maven存储库或在本地安装。