Maven 父子 pom 依赖编译报错parent.relativePath相关的问题如何解决。
报错内容如下
[ERROR] Non-resolvable parent POM for xxxxx Failure to find xxxxxx in xxxxx was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 13 -> [Help 2]
当发生该报错的时候,除了检查提示信息parent.relativePath之外,还要看一下父 pom 的version的写法是否与子pom中version的写法是否一致。
例如同时使用$变量的形式或者同时使用常量的形式。不可混合使用(父使用变量,子使用常量)
正确示例
-
父pom
<groupId>com.zuiyu</groupId> <artifactId>demo</artifactId> <version>${revision}</version>
- 子pom
<parent>
<groupId>com.zuiyu</groupId>
<artifactId>demo</artifactId>
<version>${revision}</version>
</parent>
反例
- 父pom
<groupId>com.zuiyu</groupId>
<artifactId>demo</artifactId>
<version>${revision}</version>
- 子pom
<parent>
<groupId>com.zuiyu</groupId>
<artifactId>demo</artifactId>
<version>1.0</version>
</parent>
总结
在微服务的项目开发中,新增模块有的同学就会在不注意的情况下触发该隐藏bug,导致无法打包。
所以解决就是除了根据提示信息查看是否有错误之外,还要查看父子pom的版本号是否对应,千万不要想当然。