maven加载依赖报错的原因分析及解决方法
一、问题描述:maven加载依赖报错
点击刷新,加载所有maven项目的时候,maven加载依赖失败。
显示“无法解析mysql:mysql-connector-java:pom:8.0.27”,具体报错原因如下:
mysql:mysql-connector-java:pom:8.0.27 failed to transfer from https://maven.aliyun.com/repository/public during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of nexus has elapsed or updates are forced. Original error: Could not transfer artifact mysql:mysql-connector-java:pom:8.0.27 from/to nexus (https://maven.aliyun.com/repository/public): transfer failed for https://maven.aliyun.com/repository/public/mysql/mysql-connector-java/8.0.27/mysql-connector-java-8.0.27.pom
尝试使用 -U 标记(强制更新快照)运行 Maven 导入
二、原因分析&&解决方法
mysql:mysql-connector-java:pom:8.0.27 failed to transfer from https://maven.aliyun.com/repository/public during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of nexus has elapsed or updates are forced. Original error: Could not transfer artifact mysql:mysql-connector-java:pom:8.0.27 from/to nexus (https://maven.aliyun.com/repository/public): transfer failed for https://maven.aliyun.com/repository/public/mysql/mysql-connector-java/8.0.27/mysql-connector-java-8.0.27.pom
将上述报错信息进行翻译:
Mysql: Mysql -connector-java:pom:8.0.27在前一次尝试中从https://maven.aliyun.com/repository/public传输失败。此失败缓存在本地存储库中,直到nexus的更新间隔已过或强制更新,才会重新尝试解析。原来的错误:无法传输工件mysql:mysql-connector-java:pom:8.0.27从/到nexus (https://maven.aliyun.com/repository/public):传输失败https://maven.aliyun.com/repository/public/mysql/mysql-connector-java/8.0.27/mysql-connector-java-8.0.27.pom
即此失败缓存在本地储存库中,直到nexus的更新间隔已过或强制更新,才会重新尝试解析。
1. 删除本地仓库中下载失败缓存的依赖
进入maven仓库中该依赖包的缓存文件夹,将里面的文件全部删除。
注:当我们拉取jar包失败的时候,本地库就会生成lastUpdated 文件。 拉取成功的使用可以在本地仓库中查看到jar包。
2. 然后将项目进行clean、compile、package、install
注:
1、package 命令执行时,会先从远程仓库下载最新 jar 包,在 reimport 无效时,可起到代替 reimport 的效果;
2、同理,使用 maven install 也可,但生成的 jar 包会同时到本地仓库;使用 maven deploy 也可,但生成的 jar 包会同时到远程仓库;
3、建议使用 package 命令,生成的 jar 包只保存在项目文件夹中,不影响仓库 jar 包;且更新完成之后,可执行 maven clean 命令清理掉刚才生成的 jar 包。
3. 重新加载maven
重新加载maven后,改依赖项还是报错,报错如下:
the trustAnchors parameter must be non-empty
翻译:trustAnchors参数必须非空
4. 在IDEA的Setting的Maven配置的VM options添加如下代码:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
由于使用了HTTPS,存在着SSL证书验证的问题,因此需要在IDEA中添加配置来忽略SSL证书的验证。
上述代码的作用是忽略SSL证书检查,下面的Importing是指导入依赖时忽略SSL证书检查,Runner是指运行Maven插件或目标时忽略SSL证书检查。
然后把仓库里缓存失败的文件删除,再刷新maven,依赖即可下载成功!
5. 一键用脚本删除maven仓库里所有的lastUpdated文件,然后刷新maven
一个一个删除maven仓库里下载失败的缓存文件太慢了,直接用脚本删除maven仓库里所有的lastUpdated文件。操作方法如下:
新建一个文件把名称后缀名改为clean.bat
@echo off rem create by NettQun rem 仓库路径 set REPOSITORY_PATH=D:\maven\apache-maven-3.8.4\repository rem 搜索中 for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( echo %%i del /s /q "%%i" ) rem 搜索完毕 pause
将上面的D:\maven\apache-maven-3.8.4\repository 改成你自己的仓库地址,保存退出,退出后双击运行即可。然后刷新maven,所有依赖都下载成功了!
三、另一种解决方法
1. 直接在Maven中央仓库搜索我们需要的jar包
Maven中央仓库地址:https://mvnrepository.com/
如我的不能被Maven识别的jar包:org.apache.zookeeper:zookeeper:pom:3.4.6
2. 点击需要的jar包名称进入版本库,下载对应版本
需要哪个版本,就点击对应版本
点击对应版本的包进入如下界面,点击pom/jar下载文件。
下载好后把这个文件复制到maven仓库中对应的目录下。
然后刷新maven,或者重启idea。
总结
到此这篇关于maven加载依赖报错的原因分析及解决方法的文章就介绍到这了,更多相关maven加载依赖报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java8新特性Optional类及新时间日期API示例详解
这篇文章主要为大家介绍了Java8新特性Optional类及新时间日期API示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试)
这篇文章主要介绍了springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08Mybatis-Plus3.2.0 MetaObjectHandler 无法进行公共字段全局填充
这篇文章主要介绍了Mybatis-Plus3.2.0 MetaObjectHandler 无法进行公共字段全局填充,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-11-11
最新评论