Java maven如何解析父pom?
我遇到了一个问题,我想理解它 故事 Maven版本是3.2.1。我的多模块项目结构如下:Java maven如何解析父pom?,java,maven,maven-3,dependency-management,multi-module,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中的parent元素中都没有relativePath,这意味着据我所知。/POM.xml。问题是,submoduleC已经成为一个新的
mainmoduleA
-pom.xml
-submoduleB
--pom.xml
--submoduleC
---pom.xml
-submoduleD
--pom.xml
--submoduleE
---pom.xml
子模块始终是父文件夹中模块的子模块。他们的POM中的parent
元素中都没有relativePath
,这意味着据我所知。/POM.xml
。问题是,submoduleC
已经成为一个新的依赖项,submoduleE
已经依赖于submoduleC
。submoduleC
的新依赖项版本在mainmoduleA
中管理。在本地存储库和公司存储库中,仍然是mainmoduleA
的旧版本,其中不包含该托管版本。然而,工作区文件夹结构包含正确的mainmoduleA
POM如果我单独构建了submoduleE
,submoduleC
的可传递依赖项将被忽略,因为缺少托管版本,结果是编译错误
解决优先级
maven查找父pom的可能性顺序是什么?
根据我以上的经验:
我对上面的陈述正确吗?你能证明吗?我没有找到任何相关的文档。奇怪的是,我的经验是,如果跟踪
relativePath
路径没有问题,本地目录是顺序中的第一个。@Tome:我也是。但今天它的表现不同了,我感到困惑。第一次测试这种多模块构建是。清理整个本地存储库,并尝试通过mvn Clean package
构建。这必须能够正常工作,否则会出现其他问题。