pom:2.7.1从Maven中央仓库传输失败 常规方案无效如何解决
Maven依赖传输失败报错修复方案
这个报错的核心原因不是依赖本身不存在,而是本地失败缓存锁、仓库协议不兼容、网络配置异常这三类问题,你之前尝试的强制更新、clean install没有覆盖到这些根因,按以下步骤操作即可解决:
- 清理本地仓库的失败拉取标记
之前拉取失败时Maven会在本地仓库对应路径生成.lastUpdated后缀的锁文件,这类文件不会因为你点强制更新或者执行clean命令自动删除,会一直触发拉取失败的报错。
你可以直接进入本地Maven仓库根目录(默认路径是用户目录下的.m2/repository),执行对应系统的命令批量删除锁文件:
不想用命令的话,也可以手动定位到报错里对应# Windows 系统执行 del /s /q *.lastUpdated # Mac/Linux 系统执行 find ~/.m2/repository -name "*.lastUpdated" -deletepom:2.7.1的依赖路径,按groupId/artifactId/version的层级找到2.7.1版本的文件夹,把里面所有.lastUpdated后缀的文件删掉即可。 - 修正仓库地址协议配置
你当前用的是http协议的中央仓库地址,目前Maven中央仓库已经强制要求HTTPS协议访问,HTTP请求会被直接拦截,这是很多人忽略的点。
打开本地Maven的settings.xml配置文件,在<mirrors>节点下配置支持HTTPS的镜像源,示例配置如下:
如果你是直接在项目pom.xml里配置的仓库地址,把原有<mirror> <id>central-mirror</id> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror>http://repo1.maven.org/maven2替换为https://repo1.maven.org/maven2即可。 - 校验网络代理配置
如果你在公司内网或者使用了网络代理/VPN工具,先检查settings.xml里的<proxies>节点配置是否和当前网络的代理参数一致,端口、账号密码填错、不需要走代理的内网仓库被拦截,都会导致传输失败。不确定代理配置是否正确的话,可以临时关闭代理/VPN后再尝试拉取。 - 带强制参数重新拉取依赖
以上配置修改完成后,在项目根目录执行如下命令,跳过测试加快构建速度:
命令执行完成后刷新IDE的Maven面板,报错即可消除。mvn clean install -U -DskipTests
补充校验:如果所有步骤做完还是报错,核对下你写的依赖坐标是否正确,确认对应依赖是否真的发布过2.7.1版本,坐标拼写错误、版本不存在也会抛出同样的传输失败报错。
内容的提问来源于stack exchange,提问作者lupin
相关产品推荐
相关产品推荐

