我在我的项目中实现了一个新特性,在本例中用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。
1条答案
按热度按时间1bqhqjot1#
Sping Boot 包含依赖项管理工具来帮助解决此问题。如果您正在使用任何Spring Boot依赖项,则所有Spring和Spring Boot依赖项的版本最好都由Spring Boot管理。
一种简单的方法是在Maven依赖关系管理中应用Sping Boot BOM(物料清单)。
将此处的
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-web
的That version已经有8年多的历史了,比Spring Boot的first release早。如果可以的话,你应该升级它。