Bootstrap

mvn打包springboot项目,打包时报错:子模块找不到找不到父模块所配置的信息,<relativePath /> 所引发的问题

mvn打包springboot项目,打包时报错:子模块找不到找不到父模块所配置的信息, 所引发的问题

报错信息:

[ERROR]   The project XXX (/home/×××/pom.xml) has 1 error
[ERROR]  Project build error: 'dependencies.dependency.version' for org.springframewo"

检查:

1.检查父子模块是否都配置好了:

该错误说添加该依赖没有version,只要添加SpringBoot的parent配置即可
但是,检查我的父模块中:都是有的啊,而且子模块中也引入了父模块
父模块:
都配置了,而且版本信息也都有
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
子模块:
也引入了父模块
在这里插入图片描述
2.网上方法找了个遍,都不成功,明明在父模块中,都配置好了,但在打包时,子模块一直报missing
先说解决方法:
如图:子模块中添加了这个标签:把这个标签注释掉就成功了

<relativePath /> <!-- lookup parent from repository  --> 

在这里插入图片描述
这个标签的意思是:设定一个空值将始终从仓库中获取,不从本地路径获取,如
也就是:
1.relativePath 是Maven为了寻找父模块pom.xml所额外增加的一个寻找路径
2.relativePath 默认值为 …/pom.xml
3.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
     这个还用说吗,上面都找不到了,最后只能从远程仓库找啦,再找不到就报错给你看 

所以配置 空值,意思就是跳过从…/pom.xml(即父目录下)找,而直接从仓库中找。所以才有 的注释

我也是后来无意看到看了一个博主的文章才知道:
https://blog.csdn.net/gzt19881123/article/details/105255138

;