Spring Data MongoDB 3.3.7依赖中mongodb-driver-core版本过低求助
解决spring-data-mongodb 3.3.7依赖mongodb-driver-core版本过低的问题
问题原因
- Spring Boot依赖管理优先级覆盖:父项目引入的
spring-boot-dependencies:2.1.9.RELEASE内置管理了mongodb-driver-core的版本为3.8.2,Maven的DependencyManagement规则会优先使用该版本,覆盖spring-data-mongodb自身传递的依赖版本。 - Spring Data版本系列冲突:项目中引入的
spring-data-releasetrain:Lovelace-SR11对应Spring Data 2.1.x系列,而指定的spring-data-mongodb:3.3.7属于Spring Data 2.3.x(Moore系列),两个版本系列不匹配,进一步导致依赖版本混乱。
解决方案
方案一:统一Spring Boot与Spring Data版本(推荐)
Spring Boot与Spring Data版本强绑定,对应关系如下:
- Spring Boot 2.1.x → Spring Data Lovelace(对应spring-data-mongodb 2.1.x)
- Spring Boot 2.3.x → Spring Data Moore(对应spring-data-mongodb 3.3.x)
可选择以下两种调整方式:
升级Spring Boot到匹配版本:
修改父项目properties中的版本配置:<spring-boot.version>2.3.12.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR12</spring-cloud.version> <!-- Greenwich对应Spring Boot2.1,需替换为适配2.3的Hoxton系列 -->同时移除项目中单独引入的
spring-data-releasetrain依赖,Spring Boot的spring-boot-dependencies会自动管理所有Spring Data组件的版本。降级Spring Data MongoDB到匹配版本:
修改父项目的spring.mongodb.version为Lovelace系列对应的版本:<spring.mongodb.version>2.1.11.RELEASE</spring.mongodb.version>同样移除项目中的
spring-data-releasetrain依赖,消除版本冲突。
方案二:强制指定MongoDB驱动版本(仅当无法升级Spring Boot时使用)
若必须保留Spring Boot 2.1.9.RELEASE,可在父项目的dependencyManagement中显式指定mongodb-driver-core和bson的版本,覆盖Spring Boot的默认配置:
<dependencyManagement> <dependencies> <!-- 其他依赖配置... --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-core</artifactId> <version>4.0.5</version> <!-- spring-data-mongodb 3.3.7兼容的驱动版本 --> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> <version>4.0.5</version> </dependency> </dependencies> </dependencyManagement>
注意:需确认所选驱动版本与spring-data-mongodb 3.3.7的兼容性,避免API不兼容问题。
内容的提问来源于stack exchange,提问作者goulpan
相关产品推荐
相关产品推荐

