项目场景:
从gitee克隆的module到自己的项目中maven导入报错
问题描述
导入maven依赖时报错
'parent.relativePath' of POM io.renren:renren-generator:1.0.0
(D:\Web\Project\Project_test\Backend\lyz-mail\renren-generator\pom.xml)
points at com.lyz.mall:lyz-mall instead of org.springframework.boot:spring-boot-starter-parent, please verify your project structure
原因分析:
'parent.relativePath’在POM文件D:\Web\Project\Project_test\Backend\lyz-mail\renren-generator\pom.xml中指向了com.lyz.mall:lyz-mall,而不是应该指向org.springframework.boot:spring-boot-starter-parent。
parent.relativePath指向的父项目路径有问题
解决方案:
在元素中指定了Spring Boot Starter Parent作为父项目,版本为2.6.13。这是正确的配置,但是如果在这里没有指定的值,Maven会默认使用本地存储库作为相对路径。如果您的项目结构在本地存储库中不存在,就会出现该错误
在 <parent>
元素中使用 <relativePath/>
,而没有指定具体的路径,这意味着 Maven 将使用默认的相对路径规则来查找父项目。
- 本地仓库查找:Maven 首先会查找本地的 Maven 本地存储库(local repository)来寻找父项目。通常,Maven 在本地仓库中寻找对应的父项目。
- Super POM:如果在本地仓库中找不到父项目,Maven 将查找 Maven 的 Super POM。Super POM 是 Maven 的内置 POM,定义了一些默认的配置。通常,这是 Maven 所有项目的顶级父项目。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
<relativePath/>
</parent>
我在顶级的project的pom中加入了这个module,所以这个module会进入project中