提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
构建springBoot项目时默认的URL一直是start.spring.io,我也从未思考过这个网址有什么意义,直到今天新建SpringBoot项目时发现JAVA版本只有17和20,上网一查发现是因为 Spring Boot 官方不再支持 Spring Boot 的 2.x 版本了,之后全力维护 3.x;而 Spring Boot 3.x 对 JDK 版本的最低要求是 17。
一、那如何用JDK1.8构建SpringBoot项目?
把Server URL替换成https://start.aliyun.***就可以选择Java8来构建SpringBoot项目了:
二、用阿里云镜像构建很好就是pom文件有点怪
1.start.spring.io构建的pom文件:
2.start.aliyun.***构建的pom文件
用阿里云构建项目后我发现没有parent标签,我以为可能是jdk版本或者是SpringBoot版本的原因,于是用了控制变量法构建了数次项目,最终发现就是start.aliyun.***的原因
那作为一个刚看完maven高级的JAVA小学生,我当然不同意了,你没有依赖于spring-boot-starter-parent这个父maven那这个pom文件他能对劲吗?带着这样的疑惑我又开始了我的百度之旅。然后我就发现因为aili版pom文件多了dependencyManagement做统一版本管理
还多引入了几个插件:
那么现在问题就来到了parent继承spring-boot-starter-parent的作用是否能被dependencyManagement和多引入的插件替代。
三、parent继承spring-boot-starter-parent的目的
不行了,我要下班了,这个网址写的很详细:
https://www.jb51.***/program/2849052l1.htm
书接上回:
被催更了哈哈,毕竟谁也不想收藏的帖子里嵌套另一个帖子,搁这儿无限套娃。个人理解仅供参考。
ctrl进入spring-boot-starter-parent发现继承了spring-boot-dependencies,查看代码和帖子后得知
dependencies主要引入了依赖管理:
parent主要是引入了插件管理
这里我去查看了一下springboot官网文档,发现他早已给出替代parent的方法,甚至还有些推荐这样做。
机翻一下:您可能有理由不继承spring-boot-starter-parent POM。您可能需要使用自己的公司标准父组件,或者您可能更喜欢显式声明所有Maven配置。
如果你不想使用spring-boot-starter-parent,你仍然可以通过使用一个import作用域的依赖项来保持依赖项管理(而不是插件管理)的好处,如下所示。
那parent的dependencyManagement替换完了,还要替换pluginManagement
通过阅读阿里云官方文档后得知上面那段代码可以替代pluginManagement,那现在我们就可以不继承spring-boot-starter-parent了,因为在企业中一般我们还要继承我们自己的父工程。
不过我还有一个新问题,pluginManagement里面那么多行代码怎么就被这十几行代码替代了,有知道的大佬可以在评论里教学下。
总结
其实问题是很小的问题,但我在解决困惑的过程中发现网络上关于使用不同URL构建项目的帖子很零散,于是想整理一下发个帖子,一呢是定期发帖是个好习惯,相当于创建了自己的本地maven库。二呢是希望有人和我遇到相同困惑来到网上查询时可以搜到我的帖子,帮助别人更快解决问题。