我有一个像这样的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
答案 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