maven Spring Boot依赖性

oyt4ldly  于 2023-04-20  发布在  Maven
关注(0)|答案(2)|浏览(151)

我有一个maven项目,它的spring-boot-starter-parent版本为2.7.10,父版本为spring-boot-starter-web,依赖版本为spring-boot-starter-web
我升级了spring-boot-starter-web以使用<version>3.0.5</version>
但是在mvn dependency:tree中,我仍然得到spring-webmvc旧版本,即5.3.20。
当我试图打开spring-boot-starter-web的pom时,它清楚地显示了编译依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>6.0.7</version>
    <scope>compile</scope>
</dependency>

谁能帮我理解为什么升级spring-boot-starter-web版本没有升级spring-webmvc版本?我已经明确添加了解决这个问题:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>3.0.5</version>            
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>6.0.7</version>
    <scope>compile</scope>
</dependency>

但我不确定这是否是升级这种层次依赖关系的正确方法。
注意:我的最终目标是将spring-webmvc从5.3.20升级到6.0.7

mwyxok5s

mwyxok5s1#

你应该只在父pom中管理版本。尝试将spring-boot-starter-parent升级到3.0.5,并让spring-boot-starter-web的版本是隐式的(删除版本标记)。如果你想要更精确的依赖管理,而不是让你的父版本泄漏,请使用dependencyManagement标记

83qze16e

83qze16e2#

要获取spring-webmvc的依赖项路径,请运行:

mvn dependency:tree -Dincludes=org.springframework:spring-webmvc

输出示例(显示spring-core,因为这是我碰巧拥有的可用项目):

树的第一行是你的项目,第二行是它的直接依赖关系,第三行及以后是传递依赖关系。
一旦你知道是哪一个,你可以:

  • 升级它-假设升级是可用的,并且它没有任何不希望的副作用;或
  • 删除它-如果它是一个未使用的依赖项。

相关问题