Spring Boot 依赖管理

30 Mar 2025 | 2 分钟阅读

Spring Boot 自动管理依赖和配置。每个 Spring Boot 版本都提供它所支持的依赖列表。依赖列表作为物料清单 (spring-boot-dependencies) 的一部分提供,可以与 Maven 一起使用。因此,我们不需要在配置中指定依赖的版本。Spring Boot 会自行管理。当我们更新 Spring Boot 版本时,Spring Boot 会以一致的方式自动升级所有依赖项。

依赖管理优点

  • 它通过在一个地方指定 Spring Boot 版本来提供依赖信息的集中化。这在我们从一个版本切换到另一个版本时很有帮助。
  • 它可以避免 Spring Boot 库的不同版本不匹配。
  • 我们只需要编写库名称,而无需指定版本。这在多模块项目中很有帮助。

注意:如果需要,Spring Boot 还允许覆盖依赖项版本。

Maven 依赖管理系统

Maven 项目从 spring-boot-starter-parent 继承以下特性:

  • 默认的 Java 编译器版本
  • UTF-8 源编码
  • 它从 spring-boot-dependency-pom 继承一个依赖项部分。它管理常用依赖项的版本。它忽略该依赖项的 <version> 标记。
  • 从 spring-boot-dependencies POM 继承的依赖项
  • 合理的资源过滤
  • 合理的插件配置

继承 Starter Parent

当我们配置项目时,以下 spring-boot-starter-parent 会自动继承。

注意:在上面的依赖项中,我们只指定了 Spring Boot 版本。如果我们要添加额外的 starters,只需删除 <version> 标记。同样,我们也可以通过在我们的项目中覆盖一个属性来覆盖单个依赖项。

例如,如果我们要添加另一个与我们已经注入的工件相同的依赖项,请在 <properties> 标记内再次注入该依赖项以覆盖前一个。

更改 Java 版本

我们还可以使用 <java.version> 标记来更改 Java 版本。

添加 Spring Boot Maven 插件

我们还可以在 pom.xml 文件中添加 Maven 插件。它将项目包装到一个可执行的 jar 文件中。

没有 Parent POM 的 Spring Boot

如果我们不想使用 spring-boot starter-parent 依赖项,但仍然想利用依赖项管理的优势,我们可以使用 <scope> 标记,如下所示

注意:它不维护插件管理。

上面的依赖项不允许覆盖。要实现覆盖,我们需要在 spring-boot-dependencies 条目之前,在项目的 <dependencyManagement> 标记内添加一个条目。

例如,要升级另一个 spring-data-releasetrain,请在 pom.xml 文件中添加以下依赖项。