查看spring-boot-dependencies pom获取支持的属性列表

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-dependencies/pom.xml
### Spring Boot 中 `spring-boot-dependencies` 和 `spring-boot-starter-*` 的区别及用法 #### 一、`spring-boot-dependencies` 的作用与特点 `sprinng-boot-dependencies` 是一个 Maven BOM(Bill of Materials),主要用于集中管理依赖版本。开发者可以通过引入该 BOM 来统一项目的依赖版本,而无需手动指定每个库的具体版本号[^1]。 - **优点** 它提供了一种灵活的方式来管理多个子模块的项目。如果不想让父 POM 影响整个构建过程,则可以单独使用 `spring-boot-dependencies` 并将其作为 BOM 导入到 `<dependencyManagement>` 部分。 - **缺点** 不像 `spring-boot-starter-parent` 提供默认插件配置和其他便利功能,仅专注于依赖管理。 ```xml <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.7.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ``` --- #### 二、`spring-boot-starter-parent` 的作用与特点 `sprinng-boot-starter-parent` 是一个标准的 Maven 父 POM,除了继承自 `spring-boot-dependencies` 外,还提供了额外的功能,例如: - 默认插件配置(如编译器插件、资源过滤插件等) - 统一的编码风格和打包方式设置 - 自动化测试框架集成支持 因此,在大多数情况下推荐直接使用 `spring-boot-starter-parent` 作为父 POM[^2]。 ```xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.0</version> </parent> ``` --- #### 三、`spring-boot-starter-*` 的定义及其用途 `spring-boot-starter-*` 是一组预配置好的 Starter 模块,旨在简化特定技术栈的快速启动流程。每一个 Starter 都封装了一个领域所需的常见依赖集合以及自动配置逻辑[^3]。 例如: - `spring-boot-starter-web`: 包含 Web 开发所需的核心组件,比如 Tomcat 和 Spring MVC。 - `spring-boot-starter-data-jpa`: 将 JPA 技术与 Spring Data 整合在一起。 通过这种方式,开发者只需声明少量依赖即可获得完整的功能集,从而减少繁琐的手工配置工作量。 --- #### 四、总结对比表 | 特性 | `spring-boot-dependencies` | `spring-boot-starter-parent` | |-------------------------|----------------------------------------------------|-----------------------------------------------| | 主要职责 | 管理依赖版本 | 管理依赖版本并附加更多构建特性 | | 使用场景 | 当前项目已有其他父POM或者不需要SpringBoot全部特性时 | 新建独立SpringBoot应用程序 | | 插件支持情况 | 无 | 含有丰富的Maven生命周期绑定插件 | --- ### 示例代码展示如何组合使用两者 假设我们有一个多模块项目结构,并希望保持根级灵活性的同时享受Starter带来的便捷体验: ```xml <!-- Root pom.xml --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="..."> <!-- Import dependencies management from spring boot --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.7.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <modules> <module>web-module</module> <module>service-module</module> </modules> </project> <!-- web-module/pom.xml --> <project ... > <parent> <groupId>com.example</groupId> <artifactId>root-project</artifactId> <version>1.0-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project> ``` 上述例子展示了即使不采用官方提供的Parent POM,依然能够借助BOM实现一致性的环境搭建. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值