为什么springinitializr让项目继承spring-boot-starter-parent而不是使用spring-boot-dependency

问题描述 投票:0回答:1
spring-boot maven spring-initializr
1个回答
0
投票

有人投票决定关闭问题,坚称这是基于意见的,但事实并非如此。

插件配置的存在(顺便说一句,乍一看这些配置的目的是为了修复maven插件的一些“小故障”,但是,其中一些配置不再需要了,例如:https://github.com/maven-plugin)。 com/JetBrains/kotlin/pull/1501)并不是以下之间的唯一区别:

<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>3.1.3</version>
 <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-dependencies</artifactId>
   <version>${spring-boot.version}</version>
   <type>pom</type>
   <scope>import</scope>
  </dependency>
 </dependencies>
</dependencyManagement>

在第一种情况下,maven 项目通过父子关系继承

dependencyManagement
,因此,由于
spring-boot
团队通过
properties
部分定义依赖项版本,子项目也可以通过
properties
部分覆盖依赖项版本,例如如果我们的目标是更改
spring-framework
的版本而不更改
spring-boot
的版本,我们可以定义如下内容:

<properties>
 <spring-framework.version>6.0.15</spring-framework.version>
</properties>

这显然在第二个配置的情况下不起作用 - maven 只是从

independent
BoM 导入 dependencyManagement 部分。

尚不清楚哪种方法“更灵活”(我们更愿意同时避开这两种方法),但是它们与依赖管理的角度也不同。

© www.soinside.com 2019 - 2024. All rights reserved.