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。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月12日
下一篇 2023年12月12日

相关推荐