我遇到了一个问题,我想理解它。
Maven版本是3.2.1。我有一个像这样的多模块项目结构:
mainmoduleA
-pom.xml
-submoduleB
--pom.xml
--submoduleC
---pom.xml
-submoduleD
--pom.xml
--submoduleE
---pom.xml
子模块始终是父文件夹中模块的子节点。他们的POM中的relativePath
元素中没有parent
,这意味着据我所知../pom.xml
。问题是,submoduleC
已成为新的依赖关系,submoduleE
已取决于submoduleC
。 submoduleC
的新依赖项版本在mainmoduleA
中进行了管理。在本地存储库和公司存储库中仍然是mainmoduleA
的旧版本,它不包含该托管版本。然而,工作空间文件夹结构包含正确的mainmoduleA
POM。 如果我单独构建submoduleE
,我会收到一条警告:由于缺少托管版本,submoduleC
的传递依赖性将被忽略,结果为编译错误。
maven查找父pom的可能性的顺序是什么?
根据我的经验:
relativePath
标记的parent
标记在文件夹结构中对其进行跟踪。我对上述陈述是否正确?你能以某种方式证明吗?我没有找到任何相关文件。