Spring Boot的每个发布版本都会规划它所支持的依赖项。实际上,你不用指定这些依赖项的版本号,因为Spring Boot都为你管理好了。当更新Spring Boot时,会相应的更新依赖。
![e022432e752f4a5195eda08e083a799f.png](https://img-blog.csdnimg.cn/img_convert/e022432e752f4a5195eda08e083a799f.png)
Maven管理依赖
Maven用户可以继承spring-boot-starter-parent项目,来获取最佳依赖。
依赖管理部分,可让你对公共依赖省略version标签,继承自spring-boot-dependencies POM。
如下截取自spring-boot-dependencies-2.1.7.RELEASE.pom 文件。
![a2108a6290bda25988f405193294b867.png](https://img-blog.csdnimg.cn/img_convert/a2108a6290bda25988f405193294b867.png)
继承starter parent
在POM文件中,配置继承spring-boot-starter-parent。
org.springframework.boot
spring-boot-starter-parent
2.1.7.RELEASE
这是Spring Boot的父级依赖,这样当前的项目就是Spring Boot项目了。
spring-boot-starter-parent 是一个特殊的starter,它用来提供相关的Maven默认依赖。使用它之后,常用的包依赖可以省去version标签。
使用这个配置,你还可以通过property覆盖内部的依赖。例如,在pom.xml中升级elasticsearch.version。
![a108786ae731383492226765273caa36.png](https://img-blog.csdnimg.cn/img_convert/a108786ae731383492226765273caa36.png)
可以通过spring-boot-dependencies pom,查看支持的属性列表。
如下是 spring-boot-starter-parent 可视化依赖图。
![852568259838d84b002ec1b2fc0bc699.png](https://img-blog.csdnimg.cn/img_convert/852568259838d84b002ec1b2fc0bc699.png)
不使用parent POM,配置Spring Boot
可能有人不喜欢继承spring-boot-starter-parent POM。你可能有自己的企业标准parent,或者你可能只是比较喜欢明确声明所有的Maven配置。
如果你不想使用spring-boot-starter-parent,你依然可以通过使用scope=import利用依赖管理的便利。
org.springframework.boot
spring-boot-dependencies
2.1.7.RELEASE
pom
import
这种方式不能使用property的形式覆盖原始的依赖项。要达到同样的效果,需要在dependencyManagement里面的spring-boot-dependencies之前添加依赖的东西。例如,要升级Spring Data release train,pom.xml应该是这样的。
org.springframework.data
spring-data-releasetrain
Fowler-SR2
import
pom
org.springframework.boot
spring-boot-dependencies
2.1.7.RELEASE
pom
import
如果想要把项目打包成一个可执行的jar包,需要添加maven的一下组件。
![3d9a864244575eb6fb842a74257820db.png](https://img-blog.csdnimg.cn/img_convert/3d9a864244575eb6fb842a74257820db.png)
org.springframework.boot
spring-boot-maven-plugin