考虑以下平面多模块布局的场景:
| parent-pom
| - pom.xml
| module1
| - pom.xml
parent-pom/pom.xml
所有模块的父 POM在哪里:
<groupId>my-group</groupId>
<artifactId>parent-pom</artifactId>
<version>1.0.0</version>
...
...
<module>../module1</module>
现在,pom.xml
ofmodule1
包含以下parent
部分:
<parent>
<groupId>my-group</groupId>
<artifactId>parent-pom</artifactId>
<version>1.0.0</version>
</parent>
我从一个干净的本地存储库开始;没有一个工件是预先构建的,一切都是从头开始的。尝试执行mvn install
onparent-pom
会导致错误,因为 Maven reactor 会my-group:base-pom
在本地仓库中查找,失败(因为它不存在)然后查找../pom.xml
.
美好的。我的问题是:如果构建module1
是通过构建调用的parent-pom
,为什么 Maven 甚至必须在pom.xml
任何地方寻找父级?当 Maven 来 build 时module1
,它已经知道以下事情:
- 文件系统的物理位置
my-group:parent-pom:1.0.0
。 module1
根植my-group:parent-pom:1.0.0
于.
为什么要看别处?