Maven未能解决Avuncular依赖

时间:2015-03-12 05:34:30

标签: maven

我有一个像这样的maven项目设置:

.
├── pom.xml (1)
├── common
|   └── pom.xml (2)
└── experimental
    ├── pom.xml (3)
    └── data_viewer
        └── pom.xml (4)

pom.xml(1)看起来像这样:

<groupId>com.company</groupId>
<artifactId>parent</artifactId>
<version>1</version>
<packaging>pom</packaging>

<modules>
  <module>common</module>
  <module>experimental</module>
</modules>

pom.xml(2):

<parent>
  <groupId>com.company</groupId>
  <artifactId>parent</artifactId>
  <version>1</version>
</parent>

<artifactId>common</artifactId>

pom.xml(3):

<parent>
  <groupId>com.company</groupId>
  <artifactId>parent</artifactId>
  <version>1</version>
</parent>

<groupId>com.company.experimental</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>

<modules>
  <module>data_viewer</module>
</modules>

pom.xml(4):

<parent>
    <artifactId>parent</artifactId>
    <groupId>com.company.experimental</groupId>
    <version>1</version>
</parent>

<artifactId>data_viewer</artifactId>

<dependencies>
    <dependency>
        <groupId>com.company</groupId>
        <artifactId>common</artifactId>
        <version>${project.parent.version}</version>
    </dependency>
<dependencies>

mvn package -pl data_viewer -am目录运行experimental会导致以下错误:

Failed to execute goal on project data_viewer: Could not resolve dependencies for project com.company.experimental:data_viewer:jar:1: The following artifacts could not be resolved: com.company:common:jar:1

为什么maven不知道如何解决com.company.common?正在运行Apache Maven 3.2.5

1 个答案:

答案 0 :(得分:1)

Reactor构建无法计算和构建当前聚合器pom的父级指定的模块,即它们无法遍历。但是他们可以遍历任何级别并构建儿童模块。

因此,在上述情况下,请从根文件夹中运行以下命令。

mvn package -pl experimental/data_viewer -am
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] parent
[INFO] common
[INFO] parent  <-- experimental folder one
[INFO] data_viewer