需要了解 spring-boot-starter-parent 和 spring-boot-parent 的区别

h K*_*ore 10 spring-boot

spring-boot-parent有人可以解释一下和之间的区别吗spring-boot-starter-parent

spring-boot-starter-parent他们为和编写单独模块的示例spring-boot-parent

这两个依赖关系有什么区别?

在大多数项目中,我们通常使用spring-boot-starter-parent作为父级,但当spring-boot-parent它们共享同一个父级时则不使用spring-boot-dependencies

Mic*_*ens 9

如https://www.baeldung.com/spring-boot-starter-parent中所述

\n

Spring-boot-启动器-父级

\n
\n

spring-boot-starter-parent 项目是一个特殊的入门项目 \xe2\x80\x93\n,它为我们的应用程序提供默认配置和完整的依赖关系树,以快速构建我们的 Spring Boot 项目。

\n

它还为 Maven 插件提供默认配置,例如 maven-failsafe-plugin、maven-jar-plugin、maven-surefire-plugin、maven-war-plugin。

\n

除此之外,它还继承了 spring-boot-dependencies 的依赖管理,这是 spring-boot-starter-parent 的父级。

\n
\n

spring-boot-父级

\n
\n

有时我们有一个自定义的 Maven 父级。或者,我们可能更愿意手动声明\n所有 Maven 配置。

\n

在这种情况下,我们可能选择不使用 spring-boot-starter-parent\n项目。但是,我们仍然可以通过在导入范围内的项目中添加依赖项 spring-boot-dependencies 来从其依赖关系树中受益。

\n
\n


Ana*_*han 2

Spring Boot Starter Parent帮助我们管理依赖版本、项目使用的 java 版本以及插件的默认配置,因为我们不必手动指定很多东西。

它可以帮助我们完成以下工作:

  • 配置
  • 依赖管理
  • 默认插件配置(maven-failsafe-pluginmaven-jar-plugin的默认配置maven-surefire-plugin

根据 spring-boot文档

Starters 是一组方便的依赖描述符,您可以将其包含在应用程序中。您可以获得所需的所有 Spring 和相关技术的一站式商店,而无需寻找示例代码和复制粘贴依赖描述符负载

spring -boot-starter是核心启动器,提供自动配置支持、日志记录和 YAML 等功能。它定义 spring-boot-dependencies为父 pom 。

在您提供的github url中,他们保留了一个单独的模块来spring-boot-dependencies在pom中指定父级。这可能是因为他们需要spring-boot-dependencies单独使用依赖树,而不需要自动配置和插件配置,并将其发布为单独的jar对于某些用例。

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${revision}</version>
        <relativePath>../spring-boot-dependencies</relativePath>
     </parent>
Run Code Online (Sandbox Code Playgroud)

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/2.1.6.RELEASE