maven加載依賴報(bào)錯(cuò)的原因分析及解決方法
一、問題描述:maven加載依賴報(bào)錯(cuò)
點(diǎn)擊刷新,加載所有maven項(xiàng)目的時(shí)候,maven加載依賴失敗。

顯示“無法解析mysql:mysql-connector-java:pom:8.0.27”,具體報(bào)錯(cuò)原因如下:
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 標(biāo)記(強(qiáng)制更新快照)運(yùn)行 Maven 導(dǎo)入

二、原因分析&&解決方法
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
將上述報(bào)錯(cuò)信息進(jìn)行翻譯:
Mysql: Mysql -connector-java:pom:8.0.27在前一次嘗試中從https://maven.aliyun.com/repository/public傳輸失敗。此失敗緩存在本地存儲庫中,直到nexus的更新間隔已過或強(qiáng)制更新,才會重新嘗試解析。原來的錯(cuò)誤:無法傳輸工件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的更新間隔已過或強(qiáng)制更新,才會重新嘗試解析。
1. 刪除本地倉庫中下載失敗緩存的依賴
進(jìn)入maven倉庫中該依賴包的緩存文件夾,將里面的文件全部刪除。
注:當(dāng)我們拉取jar包失敗的時(shí)候,本地庫就會生成lastUpdated 文件。 拉取成功的使用可以在本地倉庫中查看到j(luò)ar包。

2. 然后將項(xiàng)目進(jìn)行clean、compile、package、install

注:
1、package 命令執(zhí)行時(shí),會先從遠(yuǎn)程倉庫下載最新 jar 包,在 reimport 無效時(shí),可起到代替 reimport 的效果;
2、同理,使用 maven install 也可,但生成的 jar 包會同時(shí)到本地倉庫;使用 maven deploy 也可,但生成的 jar 包會同時(shí)到遠(yuǎn)程倉庫;
3、建議使用 package 命令,生成的 jar 包只保存在項(xiàng)目文件夾中,不影響倉庫 jar 包;且更新完成之后,可執(zhí)行 maven clean 命令清理掉剛才生成的 jar 包。
3. 重新加載maven

重新加載maven后,改依賴項(xiàng)還是報(bào)錯(cuò),報(bào)錯(cuò)如下:
the trustAnchors parameter must be non-empty
翻譯:trustAnchors參數(shù)必須非空
4. 在IDEA的Setting的Maven配置的VM options添加如下代碼:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
由于使用了HTTPS,存在著SSL證書驗(yàn)證的問題,因此需要在IDEA中添加配置來忽略SSL證書的驗(yàn)證。
上述代碼的作用是忽略SSL證書檢查,下面的Importing是指導(dǎo)入依賴時(shí)忽略SSL證書檢查,Runner是指運(yùn)行Maven插件或目標(biāo)時(shí)忽略SSL證書檢查。


然后把倉庫里緩存失敗的文件刪除,再刷新maven,依賴即可下載成功!
5. 一鍵用腳本刪除maven倉庫里所有的lastUpdated文件,然后刷新maven
一個(gè)一個(gè)刪除maven倉庫里下載失敗的緩存文件太慢了,直接用腳本刪除maven倉庫里所有的lastUpdated文件。操作方法如下:
新建一個(gè)文件把名稱后綴名改為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 改成你自己的倉庫地址,保存退出,退出后雙擊運(yùn)行即可。然后刷新maven,所有依賴都下載成功了!
三、另一種解決方法
1. 直接在Maven中央倉庫搜索我們需要的jar包
Maven中央倉庫地址:https://mvnrepository.com/
如我的不能被Maven識別的jar包:org.apache.zookeeper:zookeeper:pom:3.4.6

2. 點(diǎn)擊需要的jar包名稱進(jìn)入版本庫,下載對應(yīng)版本
需要哪個(gè)版本,就點(diǎn)擊對應(yīng)版本

點(diǎn)擊對應(yīng)版本的包進(jìn)入如下界面,點(diǎn)擊pom/jar下載文件。

下載好后把這個(gè)文件復(fù)制到maven倉庫中對應(yīng)的目錄下。
然后刷新maven,或者重啟idea。
總結(jié)
到此這篇關(guān)于maven加載依賴報(bào)錯(cuò)的原因分析及解決方法的文章就介紹到這了,更多相關(guān)maven加載依賴報(bào)錯(cuò)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot中實(shí)現(xiàn)接口冪等性的4種方案小結(jié)
本文主要介紹了Springboot中實(shí)現(xiàn)接口冪等性,包含數(shù)據(jù)庫的冪等,數(shù)據(jù)庫的冪等,Redis的冪等性和Token + 時(shí)間戳的冪等性,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Java中報(bào)錯(cuò)org.springframework.jdbc.UncategorizedSQLException的多種
本文主要介紹了Java中報(bào)錯(cuò)org.springframework.jdbc.UncategorizedSQLException的多種解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Java中ArrayList與順序表的概念與使用實(shí)例
順序表是指用一組地址連續(xù)的存儲單元依次存儲各個(gè)元素,使得在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲在相鄰的物理存儲單元中的線性表,下面這篇文章主要介紹了Java?ArrayList與順序表的相關(guān)資料,需要的朋友可以參考下2022-01-01
Idea2019創(chuàng)建Springboot Web項(xiàng)目的方法步驟
這篇文章主要介紹了Idea2019創(chuàng)建Springboot Web項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Spring MVC4.1服務(wù)器端推送實(shí)現(xiàn)過程解析
這篇文章主要介紹了Spring MVC4.1服務(wù)器端推送實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

