Spring Boot Starter Parent

2025年3月18日 | 2 分钟阅读

Spring Boot Starter Parent

spring-boot-starter-parent 是一个项目启动器。 它为我们的应用程序提供默认配置。 所有依赖项都在内部使用它。 所有 Spring Boot 项目都在 pom.xml 文件中使用 spring-boot-starter-parent 作为父项。

父 POM 允许我们管理多个子项目和模块的以下内容

  • 配置: 它允许我们保持 Java 版本和其他相关属性的一致性。
  • 依赖管理: 它控制依赖项的版本以避免冲突。
  • 源编码
  • 默认 Java 版本
  • 资源过滤
  • 它还控制默认插件配置。

spring-boot-starter-parent 从 spring-boot-dependencies 继承依赖管理。 我们只需要指定 Spring Boot 版本号。 如果需要其他启动器,我们可以安全地省略版本号。

Spring Boot Starter Parent 内部原理

Spring Boot Starter Parent 将 spring-boot-dependencies 定义为父 POM。 它从 spring-boot-dependencies 继承依赖管理。

默认父 Pom

properties 部分定义了应用程序的默认值。 默认 Java 版本为 1.8。 我们还可以通过在项目 pom 中指定属性 <java.version>1.8</java.version> 来覆盖 Java 版本。 父 POM 还包含一些与编码和源相关的其他设置。 如果我们在 application.properties 文件中没有定义这些默认值,Spring Boot 框架将使用这些默认值。

插件管理

spring-boot-starter-parent 指定了许多插件的默认配置,包括 maven-failsafe-plugin、maven-jar-plugin 和 maven-surefire-plugin。

Spring Boot 依赖

spring-boot-starter-parent 依赖项继承自 spring-boot-dependencies,它也共享所有这些特性。 因此,Spring Boot 将依赖项列表作为依赖管理的一部分进行管理。

没有 Parent 的 Spring Boot Starter

在某些情况下,我们不需要在 pom.xml 文件中继承 spring-boot-starter-parent。 为了处理这些用例,Spring Boot 提供了灵活性,仍然可以使用依赖管理而无需继承 spring-boot-starter-parent。

在上面的代码中,我们可以看到我们使用了 <scope> 标签。 当我们想要为某个依赖项使用不同的版本时,它很有用。