问题场景
最近笔者在打包多maven项目时也发现这么个问题,和团队配合开发,拉下pom文件代码后,执行打包命令就出现如下异常
问题分析
1、首先还是按照以往的经验把父pom优先打包,按照引用顺序,从父级向子级依次按顺序打包,后面发现不管顺序如何都是出现这个异常。
2、后面发现除了提示Could not find artifact 父pomId 找不到父pom文件提示外,还有提示引用路径问题’parent.relativePath’ points at no local POM @ line 4, column 13
<parent>
<groupId>com.xxx</groupId>
<artifactId>xxx</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath></relativePath>
</parent>
在xml文件中,未使用<relativePath>标签、<relativePath></relativePath>、<relativePath/>等都是默认指向路径 ../pom.xml,
但是回头看看父pom文件,这边确实也有指明对应子pom的相对路径,也能成功跳转
3、最后发现是编辑器版本差异引起的,我用的是19版本
后面和同事20版本的idea比对了下,发现19这个比较坑的一点,20版本父pom有写明子级路径就能直接用了,我这19版本还需要在子级pom<relativePath>
</relativePath>标签中,声明具体父pom的相对路径才能正常执行maven命令。
问题处理
根据对应的目录层级指向相应pom文件所在项目文件夹,就能处理这个异常了,正常打包了
<relativePath>../xx-parent</relativePath>
<relativePath>../../xx-parent</relativePath>