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

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

搭建一个SpringBoot项目,Maven结构为一个空的父模块包含两个子模块,父模块继承 spring-boot-starter-parent

xml 复制代码
 <!-- 部分内容 -->
 <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>

子模块继承父模块

xml 复制代码
 <!-- 部分内容 -->
 <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.

Maven首先在当前构建项目的reactor中查找父pom,然后在文件系统,然后是本地存储库,最后是远程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.

例如,当您的结构是平的,或者更深而没有中间父pom时。但是,组ID、工件ID和版本仍然是必需的,并且必须与给定位置的文件匹配,否则它将恢复到POM的存储库。(即设定一个空值或给定位置不存在时,将始终从仓库中获取,不从本地路径获取,如 <relativePath/>

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

或者手动为其指明父pom

bash 复制代码
 <relativePath>../pom.xml</relativePath>

问题解决。

相关推荐
NiNg_1_2346 分钟前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
种树人202408199 分钟前
如何在 Spring Boot 中启用定时任务
spring boot
苹果醋33 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
Wx-bishekaifayuan3 小时前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
customer083 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
Yaml44 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
LuckyLay5 小时前
Spring学习笔记_27——@EnableLoadTimeWeaving
java·spring boot·spring
佳佳_6 小时前
Spring Boot 应用启动时打印配置类信息
spring boot·后端
程序媛小果6 小时前
基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
java·vue.js·spring boot
duration~7 小时前
Maven随笔
java·maven