如何在继承版本时以编程方式查找maven依赖项的确切版本?

时间:2014-02-10 18:43:06

标签: java maven pom.xml maven-dependency-plugin parent-pom

我有一个maven项目,其中许多版本的子pom的依赖项列在父pom的<dependencyManagement>标记下。这棵pom树可以有任何深度。

我的问题是,当给出pom.xml时如何使用java解析它的依赖关系的确切(继承)版本?

当我们在pom.xml文件

上运行mvn dependency:resolve -DincludeTransitive=false时,会得到所需的输出

举个例子,假设父pom在<dependencyManagement>

下面定义了以下依赖关系
<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>group-a</groupId>
        <artifactId>artifact-a</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>group-a</groupId>
        <artifactId>artifact-b</artifactId>
        <version>1.0</version>
        <type>bar</type>
        <scope>runtime</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

和子pom.xml具有以下依赖关系

<dependencies>
    <dependency>
      <groupId>group-a</groupId>
      <artifactId>artifact-a</artifactId>
    </dependency>
    <dependency>
      <groupId>group-a</groupId>
      <artifactId>artifact-b</artifactId>
    </dependency>
  </dependencies>

如何使用Java 以编程方式检索 group-a:artifact -a group-b:artifact-b 的版本?

感谢。

1 个答案:

答案 0 :(得分:1)

尝试运行

mvn dependency:tree -Doutput=/path/to/file

mvn dependency:tree -DoutputFile=/path/to/file

来自maven docs:http://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html