有没有人能解释一下spring-boot-parent
和spring-boot-starter-parent
的区别?
他们为spring-boot-starter-parent
和spring-boot-parent
编写单独模块的示例:
- https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/
- https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/
这两种依赖关系有什么区别?
在大多数项目中,我们通常使用spring-boot-starter-parent
作为父节点,而不是spring-boot-parent
,因为它们共享同一个父节点spring-boot-dependencies
。
3条答案
按热度按时间idfiyjo81#
如https://www.baeldung.com/spring-boot-starter-parent所述
Spring-boot-starter-parent
spring-boot-starter-parent项目是一个特殊的starter项目,它为我们的应用程序提供了默认配置,并提供了一个完整的依赖关系树来快速构建我们的Spring Boot项目。
它还提供了Maven插件的默认配置,例如maven-failsafe-plugin,maven-jar-plugin,maven-surefire-plugin,maven-war-plugin。
除此之外,它还继承了spring-boot-dependencies的依赖管理,spring-boot-starter-parent是spring-boot-starter-parent的父级。
spring-boot-parent
有时我们有一个自定义的Maven父母。或者,我们可能更愿意手动声明所有的Maven配置。
在这种情况下,我们可以选择不使用spring-boot-starter-parent项目。但是,我们仍然可以通过在我们的项目中的import范围中添加依赖spring-boot-dependencies来受益于它的依赖关系树。
gkl3eglg2#
Sping Boot Starter Parent帮助我们管理依赖版本,项目使用的java版本和插件的默认配置,因为我们不必手动指定很多东西。
它帮助我们做到以下几点:
maven-failsafe-plugin
、maven-jar-plugin
和maven-surefire-plugin
等的默认配置)spring-boot doc:
启动器是一组方便的依赖项描述符,您可以将其包含在应用程序中。您可以一站式地了解所有Spring和相关技术,而无需搜索示例代码和复制粘贴依赖项描述符
spring-boot-starter是核心启动器,提供了包括自动配置支持、日志记录和YAML在内的功能。它将
spring-boot-dependencies
定义为父pom。在你提供的github url中,他们保留了一个单独的模块来指定pom中的父
spring-boot-dependencies
。这可能是因为他们需要单独使用spring-boot-dependencies
,依赖树而不需要自动配置和插件配置,并将其作为单独的jar发布用于某些用例。https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/2.1.6.RELEASE
sczxawaw3#
我相信你指的是spring-boot-starter-parent和spring-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提供的依赖项,它为autoconfigure、logging和spring-core提供依赖项。为了从starter或spring-boot-dependencies中拉取任何依赖项,您需要在主pom中显式地将其添加为依赖项。