SpringBoot 源码解析——spring-boot-dependencies 模块源码分析

点击上方 "Java指南者"关注, 星标或置顶一起成长

免费送 1024GB 精品学习资源 

该模块没有代码,主要功能是将项目所有的依赖的版本定义在 properties 之中,比如 activemq、flyway、elasticsearch、等等等很多组件。如下图所示:

SpringBoot 源码解析——spring-boot-dependencies 模块源码分析

对于一个这么大的项目,确实很有必要将所有的版本和依赖统一在一个 module 里面,不然如果在每个其他的子 module 都各自定义自己需要的依赖和其版本,对于后期维护(升级版本、各个模块都要更改、解决不同版本之间的冲突)都是一件非常头疼的事情,所以不如在项目初建之时就提前把这种基础服务给统一在一个模块里面,省得后期为各种烦心事操心。

SpringBoot 源码解析——spring-boot-dependencies 模块源码分析

可以看到是使用 DepencyManagement 来管理的所有依赖和使用 properties 之中定义的版本。

当我们的项目模块很多的时候,需要抽出一个模块来管理子项目的公共依赖,从而能够保证子项目的正确运行,让所有子项目使用的依赖项的版本统一,这样才能保证测试的和发布的是相同的结果。

在我们项目顶层的 POM 文件中,通过 dependencyManagement 元素来管理 jar 包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven 会沿着父子层次向上走,直到找到一个拥有 dependencyManagement元素的项目,然后它就会使用在这个 dependencyManagement 元素中指定的版本号。

关注我

关注我,Java 学习不迷路!

SpringBoot 源码解析——spring-boot-dependencies 模块源码分析