java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Maven错误使用parent.relativePath导致构建失败

Maven中错误使用parent.relativePath导致构建失败问题

作者:mosplus

这篇文章主要介绍了Maven中错误使用parent.relativePath导致构建失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Maven中错误使用parent.relativePath导致构建失败

搭建一个SpringBoot项目,Maven结构为一个空的父模块包含两个子模块

<!-- 部分内容 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.13</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>com.mos</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>

<modules>
    <module>consume</module>
    <module>produce</module>
</modules>
<!-- 部分内容 -->
<parent>
    <groupId>com.mos</groupId>
    <artifactId>parent</artifactId>
    <version>1.0.0</version>
    <relativePath/><!-- 注意这个标签 -->
</parent>

<artifactId>consume</artifactId>
<version>1.0.0</version>

然后通过Maven构建,报错,提示远程/本地仓库中都找不到 com.mos:parent 这个项目,本地创建的项目,也没有安装到本地仓库,肯定两边都找不到啊。

但是以前也正常,为什么就这个项目突然出问题了,原因就出在子项目的 <relativePath/> 标签上,

官方对该标签解释

Maven looks for the parent pom first in the reactor of currently building projects, then in this location on the filesystem, then the local repository, and lastly in the remote repo.

for example when your structure is flat, or deeper without an intermediate parent pom. However, the group ID, artifact ID and version are still required, and must match the file in the location given or it will revert to the repository for the POM.

因为子模块都是用IDEA的SpringBoot模板构建的,所以 pom.xml 里面都有 <relativePath/> 标签,去除即可。

<relativePath>../pom.xml</relativePath>

问题解决。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文