Spring Boot2.7.0构建无法解析spring-data-keyvalue:2.7.0依赖
问题原因
这个问题由几个常见因素导致:
- Spring Boot 2.7.0存在官方已知的依赖对齐bug:该版本发布时引入的Spring Data 2021.2.0 BOM错误配置了
spring-data-keyvalue的版本匹配规则,加上该版本依赖刚发布时Maven中央仓库同步存在延迟,默认配置下Maven无法找到对应版本的jar包。 - 配置存在冗余写法:继承
spring-boot-starter-parent后,核心starter的版本不需要手动指定,你给spring-boot-starter-data-redis手动添加的<version>2.7.0</version>属于多余配置,极端情况下会干扰Maven的版本仲裁逻辑。 - 本地缓存损坏:如果之前拉取依赖时出现过网络中断,本地Maven仓库会缓存不完整的依赖文件,后续构建会直接读取损坏缓存,持续报无法解析的错误。
修复方案
按以下优先级操作即可解决:
- 最优方案:直接升级Spring Boot 2.7.x到该版本线的最新稳定修复版(2.7线最终修复版本为2.7.18),只需要修改parent节点的版本号:
同时删掉<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.18</version> <relativePath/> </parent>spring-boot-starter-data-redis依赖上手动加的<version>2.7.0</version>标签,让parent统一管理所有依赖版本即可。 - 如果暂时不能升级Spring Boot主版本,可以在pom的
properties节点中手动覆盖有问题的Spring Data BOM版本,替换为修复了该问题的版本:<properties> <java.version>17</java.version> <spring-data-bom.version>2021.2.1</spring-data-bom.version> </properties> - 如果上述操作后还是报错,先清理本地Maven的损坏缓存:找到本地Maven仓库路径下的
org/springframework/data/spring-data-keyvalue/2.7.0文件夹直接删除,然后在项目根目录执行以下命令强制重新拉取依赖:mvn clean install -U - 如果你配置了第三方Maven镜像源,检查镜像源地址是否为HTTPS协议、是否处于可用状态,避免因为镜像源同步不全导致依赖拉取失败。
内容的提问来源于stack exchange,提问作者Melih AKAN
相关产品推荐
相关产品推荐

