SpringBoot:模块探究之spring-boot-dependencies
创始人
2024-04-28 14:01:12
0

在 SpringBoot 开发时,我们常常会发现一个现象:即在 pom 文件中,加入一个新的依赖,往往不需要引入相应的版本号(如下代码块所示),就可以正常引入依赖,这其实是因为我们依赖了 spring-boot-starter-parent 模块的缘故!

点 spring-boot-starter-parent 进去查看源文件会发现,spring-boot-starter-parent 继承了 spring-boot-dependencies!

点 spring-boot-dependencies 进去查看源文件会发现,它在管理着相关依赖的版本。在 dependencyManagement 进行依赖管理,在 pluginManagement 中进行插件管理!

~

本篇内容包括:spring-boot-dependencies 模块介绍、对 spring-boot-dependencies 依赖管理方法的借鉴


文章目录

    • 一、spring-boot-dependencies 模块介绍
        • 1、关于 spring-boot-starter-parent 模块
        • 2、关于 spring-boot-dependencies 模块
    • 二、对 spring-boot-dependencies 依赖管理方法的借鉴
        • 1、pom.xml 里的 dependencyManagement 节点
        • 2、pom.xml 里的 pluginManagement 节点
        • 3、pom.xml 里的 plugins 节点
        • 4、对 spring-boot-dependencies 依赖管理方法的借鉴


一、spring-boot-dependencies 模块介绍

1、关于 spring-boot-starter-parent 模块

在 SpringBoot 开发时,我们常常会发现一个现象:即在 pom 文件中,加入一个新的依赖,往往不需要引入相应的版本号(如下代码块所示),就可以正常引入依赖,这其实是因为我们依赖了 spring-boot-starter-parent 模块的缘故!

org.springframework.bootspring-boot-starter-parent2.7.2 
org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtest...

2、关于 spring-boot-dependencies 模块

点 spring-boot-starter-parent 进去查看源文件会发现,spring-boot-starter-parent 继承了 spring-boot-dependencies

  org.springframework.bootspring-boot-dependencies2.7.2

点 spring-boot-dependencies 进去查看源文件会发现,它在管理着相关依赖的版本。在 dependencyManagement 进行依赖管理,在 pluginManagement 中进行插件管理:

image-20221219105152638


二、对 spring-boot-dependencies 依赖管理方法的借鉴

1、pom.xml 里的 dependencyManagement 节点

dependencyManagement 节点的作用是统一 maven 引入依赖 Jar 包的版本号,可以看出 spring-boot-dependencies 最重要的一个作用就是对 springboot 可能用到的依赖 Jar 包做了版本号的控制管理。

2、pom.xml 里的 pluginManagement 节点

pluginManagement 节点的作用是统一 Maven 引入插件的版本号,可以看出 spring-boot-dependencies 另一个作用是对 SpringBoot 可能用到的插件做了版本号的控制管理。

3、pom.xml 里的 plugins 节点

spring-boot-dependencies 引入(或覆盖)了三个插件:

maven-help-plugin:用于获取有关项目或系统的帮助信息;这个插件是 Maven 自带的插件,这里进行了覆盖设置;设置 inherited(是否继承)为 false;设置 phase 为 generate-resources、goal 为 effective-pom 的配置 output

maven-help-pluginfalsegenerate-effective-dependencies-pomgenerate-resourceseffective-pom${project.build.directory}/effective-pom/spring-boot-dependencies.xml

# xml-maven-plugin:处理XML相关

org.codehaus.mojoxml-maven-plugin1.0falsetransform${project.build.directory}/effective-pomsrc/main/xslt/single-project.xsl${project.build.directory}/effective-pom

# build-helper-maven-plugin:用于设置主源码目录、测试源码目录、主资源文件目录、测试资源文件目录等

org.codehaus.mojobuild-helper-maven-pluginfalseattach-artifactspackageattach-artifact${project.build.directory}/effective-pom/spring-boot-dependencies.xmleffective-pom

这三个插件共同完成了一件事,将 spring-boot-dependencies(springboot在项目里使用到的依赖)输出到 XML,并且打包 install到仓库。

这些就是spring-boot-dependencies 主要的作用了,管理控制依赖版本号,管理控制插件版本号以及引入了 3 个辅助插件。

4、对 spring-boot-dependencies 依赖管理方法的借鉴

spring-boot-dependencies 对依赖的管理方法,我们也可以借鉴一下。

spring-boot-dependencies 只管理着部分依赖,还有一些第三方依赖没有管理到,当我们创建微服务时,就可以使用这种方法来管理父类的 POM 文件,把依赖的版本号集中在主POM中管理,其他子项目只需要在使用的时候引入即可,无需写版本号。

单项目,那就没有这么管理的必要了,不要为了管理而管理。

总结一下,spring-boot-dependencies 对插件的管理方法为:



5.5.2
5.5.2




xxxx
xx-maven-plugin
${test.version}





xxxx
xxxxxxx
${plugin.version}



相关内容

热门资讯

“赫哲故里”同江:离境退税政策... 中新网佳木斯1月2日电(闫瀛锟 王玮琦)1日,同江市离境退税“即买即退”服务正式面向境外旅客启动。通...
上海律保科技申请基于多轮对话意... 国家知识产权局信息显示,上海律保科技有限公司申请一项名为“一种基于多轮对话意图理解的法律咨询机器人交...
政策红利继续释放!家电股活跃,... 2026年1月2日,港股家电股集体冲高。截至收盘,创维集团(00751.HK)涨10.45%,美的集...
深蓝汽车发布2026年首轮购车... 为响应国家2026年“两新”政策,促进汽车消费与产业升级,深蓝汽车于12月31日发布2026年新春购...
“死水”盘活记:一桩涉企债务纠... “最近园区改建还顺利吗?”2025年12月16日,浙江省德清县人民法院的执行干警再次来到莫干山某探险...
深蓝汽车两新政策,全系车型享国... 为响应国家2026年"两新"政策,促进汽车消费与产业升级,深蓝汽车于12月31日发布2026年新春购...
港澳平:港澳维护国家安全坚定有... 编辑 | 余晖 1月1日,“港澳平”刊发了题为《不负期许创佳绩 乘势而上再扬帆》的文章。 全文如...
原创 特... 在2025年的夏天,38岁的程序员杰克·威尔逊正蜷缩在西雅图天桥下的帐篷里,手里啃着一份冷三明治。六...
蔡彤娟:增强市场主体获得感 以... 编者按:“放得活”与“管得好”,既是一项重要的经济政策要求,也是一种治理智慧。2025年12月28日...