maven加载依赖报错的原因分析及解决方法

 更新时间:2023年10月16日 10:43:32   作者:qq_42341884  
通常我们在项目中引入第三方依赖包时,为了避免其版本迭代问题,经常会使用本地的包,这篇文章主要给大家介绍了关于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 导入

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包。

![在这里插入图片描述](https://img-blog.csdnimg.cn/e7954b3d734e40fca6373c64d54afb46.png

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加载依赖报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论