使用Maven获取轴1.4依赖关系的完整列表

时间:2018-11-29 10:53:24

标签: maven

我试图使用Maven来获得工件axis:axis:1.4的所有依赖关系,但收效甚微。这是我所做的:

POM:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany</groupId>
  <artifactId>myapp</artifactId>
  <version>1</version>

  <dependencies>
      <dependency>
        <groupId>axis</groupId>
        <artifactId>axis</artifactId>
        <version>1.4</version>
      </dependency>
  </dependencies>
</project>

用于构建依赖关系图的批处理脚本:

@echo off
set PATH=%PATH%;D:\tools\apache-maven-3.6.0\bin
set JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_171
call mvn compile dependency:tree -DoutputType=dot -DoutputFile=dependencies.txt
pause

结果:

digraph "com.mycompany:myapp:jar:1" { 
    "com.mycompany:myapp:jar:1" -> "axis:axis:jar:1.4:compile" ; 
    "axis:axis:jar:1.4:compile" -> "org.apache.axis:axis-jaxrpc:jar:1.4:compile" ; 
    "axis:axis:jar:1.4:compile" -> "org.apache.axis:axis-saaj:jar:1.4:compile" ; 
    "axis:axis:jar:1.4:compile" -> "axis:axis-wsdl4j:jar:1.5.1:runtime" ; 
    "axis:axis:jar:1.4:compile" -> "commons-logging:commons-logging:jar:1.0.4:runtime" ; 
    "axis:axis:jar:1.4:compile" -> "commons-discovery:commons-discovery:jar:0.2:runtime" ; 
 } 
乍看之下,这似乎是合理的。但是,a quick search for the commons-logging:commons-logging:1.0.4 artifact揭示了更多的依赖关系。前述的commons-logging库取决于:

  • log4j:log4j:1.2.6
  • logkit:logkit:1.0.1
  • avalon-framework:avalon-framework:4.1.3

...但是在生成的依赖图中找不到这些依赖(及其依赖)。

因此,我的问题如下:是否有一种方法可以使上述依赖关系(及其依赖关系以及它们的依赖关系的依此类推等等)显示在图中?如果可以,怎么办?

1 个答案:

答案 0 :(得分:0)

<optional>true</optional>为您提供了完整的依赖关系列表。提到的文物

  • log4j:log4j:1.2.6
  • logkit:logkit:1.0.1
  • avalon-framework:avalon-framework:4.1.3

RewriteRule ^foo/$ /foo/bar [R=301,L] 的依赖项。这些没有被绘制为传递依赖,因此它们不包含在依赖树中。