【问题标题】:Need to know the difference between spring-boot-starter-parent and spring-boot-parent需要知道spring-boot-starter-parent和spring-boot-parent的区别
【发布时间】:2019-07-09 15:03:53
【问题描述】:

有人能解释一下 spring-boot-parent 和 spring-boot-starter-parent 之间的区别吗,正如我在下面附加的 GIT HUB 代码链接之一中看到的,他们为 spring-boot- 编写了单独的模块starter-parent 和 spring-boot-parent。

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/

如果有人知道这两个依赖项之间的区别,请告诉我,同样在大多数项目中,我们通常使用 spring-boot-starter-parent 作为父级,但当它们共享相同时不使用 spring-boot-parent父弹簧引导依赖项。

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

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

    Spring-boot-starter-parent

    spring-boot-starter-parent 项目是一个特殊的启动项目—— 它为我们的应用程序和一个提供默认配置 完整的依赖树,快速构建我们的 Spring Boot 项目。

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

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

    spring-boot-parent

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

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

    【讨论】:

      【解决方案2】:

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

      它对我们有以下帮助:

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

      根据spring-bootdoc

      Starters 是一组方便的依赖描述符,您可以 包括在您的应用程序中。您可以一站式购买所有 无需猎取所需的 Spring 及相关技术 通过示例代码和复制粘贴加载的依赖描述符

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

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

          <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-dependencies</artifactId>
              <version>${revision}</version>
              <relativePath>../spring-boot-dependencies</relativePath>
           </parent>
      

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

      【讨论】:

        【解决方案3】:

        我相信您指的是 spring-boot-starter-parentspring-boot-starter 之间的区别。

        • spring-boot-starter-parent - 具有 spring-boot-dependencies 作为父级,因此提供各种 spring-boot 依赖项并有助于依赖项管理。除了这个 spring-boot-starter-parent 本身还有助于插件管理。 因此,如果您只使用 spring-boot-dependencies,您可以从它提供的依赖管理中受益,但如果您使用 spring-boot-starter-parent,您将获得依赖管理 + 插件管理。
        • spring-boot-starter - 它是 spring-boot-dependencies 提供的依赖项,它为自动配置、日志记录和 spring-core 提供依赖项。为了从 starter 或 spring-boot-dependencies 中提取任何依赖项,您需要在主 pom 中显式添加它作为依赖项。

        【讨论】:

          猜你喜欢
          • 2020-05-23
          • 2022-07-30
          • 2019-12-26
          • 2018-09-26
          • 2017-02-19
          • 2020-07-02
          • 2018-10-15
          • 2018-01-10
          • 2020-03-17
          相关资源
          最近更新 更多