当前位置: 首页 > news >正文

springboot的依赖实现原理:spring-boot-starter-parent解析

01 dependencyManagement的作用

在使用springboot时我们会在项目pom引入以下配置和依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version>
</parent>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
</dependencies>

为什么spring-boot-starter和spring-boot-starter-data-redis不需要添加版本号?

这是由于maven的dependencyManagement,该元素的作用是集中管理项目的依赖版本,而不是直接引入依赖。它的主要用途是在多模块项目中统一控制依赖版本,以确保所有子模块使用相同版本的依赖,从而避免版本冲突。接下来我们了解其实现过程。

02 spring-boot-starter-parent的实现

 查看spring-boot-starter-parent在maven仓库的目录 由上图可以看到只有spring-boot-starter-parent.pom文件,没有jar文件,查看pom内容它的父依赖是spring-boot-dependencies,并且打包类型是pom,所以在仓库只看到pom文件。

03 spring-boot-dependencies的实现 

 查看spring-boot-dependencies在maven仓库的目录,同样只有pom文件,没有jar。

pom文件的打包方式也是pom 

可以看到依赖使用dependencyManagement统一管理,插件使用pluginManagement统一管理。

04 总结

通过使用dependencyManagement,既统一管理依赖的版本,也可以自由引入想用的jar。在大型多模块项目中,它可以帮助保持依赖的一致性和简化依赖的管理。

道阻且长,行则将至,行而不辍,未来可期!

你的关注是我更新的动力!


http://www.mrgr.cn/news/74684.html

相关文章:

  • 比ChatGPT更酷的AI工具
  • Redis简介、数据结构、高性能读写、持久化机制、分布式架构
  • 图像处理实验四(Adaptive Filter)
  • qt QProcess详解
  • Java——异常处理
  • [C++]内联函数和nullptr
  • Nginx 负载均衡与权重配置解析
  • 【超小体积】ST VIPERGAN100打造20V/5A电源适配器新方案!
  • docker镜像源,亲测可用,时间2024-11-14
  • python-三方库-PyTorch-Pillow (PIL Fork)
  • 植物神经紊乱不用怕,科学锻炼助你找回平衡✨
  • Go语言开发基于SQLite数据库实现用户表查询详情接口(三)
  • 【前端学习指南】Vue computed 计算属性 watch 监听器
  • 2024 ECCV | DualDn: 通过可微ISP进行双域去噪
  • 2024-在Gentoo claculate Linux中设置中文支持
  • 【云原生开发】K8S多集群管理系统成果展示
  • WinCC Professional S5Time及Time数据显示
  • Ubuntu20.04.3.LTS安装ftp
  • .NET 9中数据集合类型及其性能比较与应用场景分析
  • 管家婆财贸ERP BB092.物配任务工作台凭证引入
  • MySQL索引创建原则总结
  • 现代网络安全:关键技术与实战策略
  • 利用 React 构建现代化 Web 应用的核心实践
  • BFS 算法专题(三):BFS 解决边权为 1 的最短路问题
  • PostgreSQL 一键安装部署脚本化
  • 【算法】【优选算法】前缀和(上)