Gradle项目升级Spring至5.3.20构建时无法解析spring-webmvc依赖
问题根因
执行Gradle构建时出现如下依赖解析错误:
Could not resolve: org.springframework:spring-webmvc:5.3.20
该错误本质是Gradle在所有配置的制品仓库中,无法找到对应版本的spring-webmvc包完成下载,常见触发原因如下:
- 配置的制品仓库不可用:要么仅配置了未同步Spring 5.3.20版本的企业私有代理仓库,要么本地网络拦截了公网Maven仓库的请求,要么仓库配置顺序错误导致优先命中了无对应版本的仓库。
- 本地Gradle缓存损坏:之前拉取该版本依赖时出现网络中断、进程被杀等异常,导致本地缓存了残缺的包元数据或文件,后续构建直接判定该依赖不可用。
- 依赖解析规则冲突:项目中配置了版本锁定、强制版本、依赖排除等规则,将Spring相关包的版本锁死在5.2.x分支,打断了5.3.20版本的解析链路。
- 版本拼写错误:误写版本号数字、添加了不存在的版本后缀(不过5.3.20是Spring官方正式发布的稳定版,该原因概率较低)。
排查修复步骤
按从易到难的顺序依次排查即可:
- 核对版本与仓库配置
打开项目下的build.gradle或settings.gradle文件,首先确认repositories块中配置了可正常访问的制品仓库,标准配置参考如下:
如果使用企业内部代理仓库,第一时间联系仓库管理员确认repositories { mavenCentral() // 若使用企业私有仓库,需提前确认管理员已同步Spring 5.3.20全量制品 }spring-webmvc:5.3.20是否已完成同步,是否存在仓库规则拦截该版本下载的情况。 - 清理损坏缓存并强制刷新依赖
先执行强制刷新依赖的构建命令,跳过本地缓存重新拉取所有依赖:
如果命令执行后仍报错,手动删除本地Gradle缓存中对应版本的目录,默认缓存路径为./gradlew build --refresh-dependencies # Windows系统执行 gradlew.bat build --refresh-dependencies~/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.3.20,删除整个5.3.20文件夹后重新执行构建。 - 排查依赖解析规则冲突
全局搜索项目中的Gradle配置,查找是否存在以下类型的规则:- 使用
force强制指定Spring核心包版本为5.2.x - 在
resolutionStrategy中配置了Spring版本锁定规则 - 存在针对spring-webmvc的
exclude排除规则
定位到冲突规则后,将规则中锁定的旧版本调整为5.3.20,或临时注释规则验证构建是否恢复正常。
- 使用
- 排查网络连通问题
测试本地网络是否能正常访问配置的Maven仓库地址,若开启了网络代理、防火墙拦截了jar包下载请求,切换为可用网络或配置可达的国内Maven镜像源即可。
内容的提问来源于stack exchange,提问作者vishal rathod
相关产品推荐
相关产品推荐

