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