提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、Maven BOM
- 二、使用
- 三、SpringBoot的依赖管理
前言
提示:这里可以添加本文要记录的大概内容:
依赖管理能带来啥:
- 避免版本不一致导致的兼容问题。
- 可以不用显式声明版本号
- 自动化版本升级,只要改主POM文件就可以完成整个项目的版本升级
一、Maven BOM
Maven 提供了一个强大的工具——Bill of Materials (BOM)用来完成依赖管理。
直译为“材料清单”。在 Maven 的上下文中,BOM 是一个特殊的 POM(Project Object Model)文件,它列出了一个项目所需的所有依赖及其对应的版本。与其他 POM 文件不同,BOM 文件主要用于依赖管理,确保所有模块共享相同的依赖版本。
二、使用
通过在<dependencyManagement>
标签中添加<dependency>
标签并指定 BOM 的 groupId、artifactId 和 version 来完成。
<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><jjwt.version>3.19.0</jjwt.version><lombok.version>1.18.24</lombok.version><spring.boot.version>3.2.5</spring.boot.version></properties><dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring.boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>${jjwt.version}</version> <!-- 请检查最新版本并替换 --></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version> <!-- 检查最新版本 --><scope>provided</scope> <!-- 如果使用IDEA或其他开发环境,可以设置为provided,因为它们在编译时会自动处理 --></dependency></dependencies></dependencyManagement>
使用依赖项:一旦项目引入了 BOM,项目中其他模块在声明依赖时可以省略版本号,因为 BOM 会自动提供正确的版本。
注意,此时并没有下载依赖哦!
在这个配置中,部分并没有直接下载任何依赖。仅用于定义依赖的版本管理,它告诉Maven在子模块中声明这些依赖时应该使用哪个版本。实际的下载发生在子模块的标签中,当这些依赖被引用时。
三、SpringBoot的依赖管理
方式一:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.10</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
这是因为 继承的spring-boot-starter-parent
中又继承了spring-boot-dependencies
而在spring-boot-dependencies
中才真正的做了springboot的依赖管理。
截图:总之你自己去看把!
方式二:
直接引入spring-boot-dependencies
<dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.0.4.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>