问题:在使用微服务分模块化开发的时候导入公共模块的时候,公共模块频繁更新pom坐标导致服务模块更新坐标出现下面异常,并且无论怎么样注释公共模块的坐标也无法把公共模块给剔除出去,也可能是自己误操作的原因导致maven刷新坐标不起作用,但是错误原因很明显,所以根据报错去解决问题
io.renren:renren-fast:jar:3.0.0 构建有效模型时遇到的一些问题
POM io.renren:renren-fast:3.0.0 (D:\workspace\java\gulimall\renren-fast\pom.xml) 的 'parent.relativePath' 指向 com.atguigu.gulimall:gulimall 而不是 org.springframework .boot:spring-boot-starter-parent,请验证您的项目结构@第11行,第10列
io.renren:renren-generator:jar:1.0.0 构建有效模型时遇到的一些问题
POM io.renren:renren-generator:1.0.0 (D:\workspace\java\gulimall\renren-generator\pom.xml) 的 'parent.relativePath' 指向 com.atguigu.gulimall:gulimall 而不是 org.springframework .boot:spring-boot-starter-parent,请验证您的项目结构@第11行,第10列
com.atguigu.gulimall:gulimall-common:jar:0.0.1-SNAPSHOT构建有效模型时遇到一些问题
缺少 org.apache.maven.plugins:maven-compiler-plugin 的“build.plugins.plugin.version”。 @ com.atguigu.gulimall:gulimall-common:[未知版本],D:\workspace\java\gulimall\gulimall-common\pom.xml,第16行,第21列
强烈建议修复这些问题,因为它们会威胁到您构建的稳定性。
出于这个原因,未来的 Maven 版本可能不再支持构建这种格式错误的项目。
问题描述翻译的意思是,本来本服务模块使用的父工程是springboot,但是却指向了导入common公共模块为父工程,解决办法就是在<parent>中添加
<relativePath/> <!-- lookup parent from repository -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
下面对 relativePath解释来自https://blog.csdn.net/gzt19881123/article/details/105255138
- relativePath 是Maven为了寻找父模块pom.xml所额外增加的一个寻找路径
- relativePath 默认值为 …/pom.xml
- Maven 寻找父模块pom.xml 的顺序如下:
(1) first in the reactor of currently building projects
这里一个maven概念 反应堆(reactor ),
意思就是先从工程里面有依赖相关的模块中找你引入的
parent 的pom.xml,
(2) then in this location on the filesystem
然后从 你定义的 <relativePath > 路径中找,
当然你如果只是 / 即空值,则跳过该步骤,
默认值 ../pom.xml 则是从上级目录中找啦。
(3) then the local repository
这个就不说了,如果 (1) (2) 步骤没有则从 本地仓库找啦。
(4) and lastly in the remote repo
这个还用说吗,上面都找不到了,最后只能从远程仓库找啦,再找不到就报错给你看