java 如何确定应使用哪个依赖项版本?

k5hmc34c  于 2022-11-27  发布在  Java
关注(0)|答案(1)|浏览(358)

我在我的项目中实现了一个新特性,在本例中用webclient替换了resttemplate。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
  <version>???</version>
</dependency>

我使用mvn dependecy:tree命令来找出spring-web的当前版本,并验证它是3.2.8-RELEASE。如何找出我应该在项目的maven中使用哪个spring-boot-starter-webflux版本,这样我就不会有如下依赖问题:java.lang.NoClassDefFoundError: org/springframework/http/client/reactive/ClientHttpConnector
换句话说,我如何找出哪个spring-boot-starter-webflux版本与我正在使用的spring-web版本兼容?
如果我省略版本号,在构建时,我会得到错误dependencies.dependency.versin is missing。

1bqhqjot

1bqhqjot1#

Sping Boot 包含依赖项管理工具来帮助解决此问题。如果您正在使用任何Spring Boot依赖项,则所有Spring和Spring Boot依赖项的版本最好都由Spring Boot管理。
一种简单的方法是在Maven依赖关系管理中应用Sping Boot BOM(物料清单)。

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

将此处的version替换为您要使用的Sping Boot 版本。然后,您可以忽略任何其他Spring或Spring Boot依赖项的版本号。
Sping Boot 团队维护材料清单,以便为所有Spring和Spring Boot组件以及Spring框架所依赖的其他库提供兼容的版本。
您可以在此处的文档中找到更多信息:https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.dependency-management
如果您想手动参考Spring的版本兼容性表,它发布在Sping Boot 文档中。例如,您可以在以下位置找到当前Spring Boot版本的兼容依赖项版本:https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html
如果你试图为现有的依赖项确定兼容的 Boot 版本,一个很好的开始是比较它们的发布日期。寻找一个与你的依赖项大约在同一时间发布的SpringBoot版本。然后你可以查看该SpringBoot版本的兼容性表。通过使用这种方法,我找不到与spring-web 3.2.8兼容的Sping Boot 版本。spring-webThat version已经有8年多的历史了,比Spring Boot的first release早。如果可以的话,你应该升级它。

相关问题