【初】Non-resolvable parent POM for Could not find artifact and ‘parent.relativePath‘ points at wrong loca
大约 2 分钟
一、问题解决

在使用maven打包的时候,报了上面这个错,简单来说就是找不到某个依赖,这是因为我们在构建子父工程的时候,子类打包找不到父类的依赖。
一般我们只需要重新打开父类,然后执行 mvn install
,再去子类里面重新依赖一下就好了。
但是我这个父类是依赖的远程仓库,我通过maven也把它拉到了本地仓库,但是依旧不行,最后发现原因是因为,我本地安装了两个maven,M1和M2,我在配置环境变量的时候配置的是M1地址。
以前我打包都是使用下面这个地方

这里最后的打包结果都是在本地的target
目录下面创建一个 xxxx.jar,拿到这个jar丢到服务器上面就行了。都是打包的单体项目,不存在子父的依赖所以不存在问题。
但是现在需要在本地打包然后把打包结果推送到远程的仓库 mvn clean package -DskipTests -Ptest
,这个时候就必须要使用你的环境变量的maven。
二、relativePath
在解决问题的过程中,认识到了下面这个标签,它是用来指定父类pom的地址,
<parent>
<groupId>cn.ideamake</groupId>
<artifactId>parent-starter</artifactId>
<version>1.2.1.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
默认顺序:relativePath > 本地仓库 > 远程仓库
一般我们可以不用配置它,它会先去上一级去找,找不到就去本地仓库,本地仓库找不到就会去远程仓库
但这里有个意外,如果我们本次仓库里面有这个文件,那就说明最后不会读取本地,而是去读取远程仓库
