maven如何解决父母pom?

时间:2015-04-29 07:44:03

标签: java maven maven-3 dependency-management multi-module

我遇到了一个问题,我想理解它。

故事

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已取决于submoduleCsubmoduleC的新依赖项版本在mainmoduleA中进行了管理。在本地存储库和公司存储库中仍然是mainmoduleA 的旧版本,它不包含该托管版本。然而,工作空间文件夹结构包含正确的mainmoduleA POM。 如果我单独构建submoduleE ,我会收到一条警告:由于缺少托管版本,submoduleC的传递依赖性将被忽略,结果为编译错误

分辨率优先级

maven查找父pom的可能性的顺序是什么?

根据我的经验:

  1. maven local repository
  2. maven remote repository
  3. 根据relativePath标记的parent标记在文件夹结构中对其进行跟踪。
  4. 我对上述陈述是否正确?你能以某种方式证明吗?我没有找到任何相关文件。

0 个答案:

没有答案