maven加載依賴報(bào)錯(cuò)的原因分析及解決方法
一、問(wèn)題描述:maven加載依賴報(bào)錯(cuò)
點(diǎn)擊刷新,加載所有maven項(xiàng)目的時(shí)候,maven加載依賴失敗。
顯示“無(wú)法解析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傳輸失敗。此失敗緩存在本地存儲(chǔ)庫(kù)中,直到nexus的更新間隔已過(guò)或強(qiáng)制更新,才會(huì)重新嘗試解析。原來(lái)的錯(cuò)誤:無(wú)法傳輸工件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
即此失敗緩存在本地儲(chǔ)存庫(kù)中,直到nexus的更新間隔已過(guò)或強(qiáng)制更新,才會(huì)重新嘗試解析。
1. 刪除本地倉(cāng)庫(kù)中下載失敗緩存的依賴
進(jìn)入maven倉(cāng)庫(kù)中該依賴包的緩存文件夾,將里面的文件全部刪除。
注:當(dāng)我們拉取jar包失敗的時(shí)候,本地庫(kù)就會(huì)生成lastUpdated 文件。 拉取成功的使用可以在本地倉(cāng)庫(kù)中查看到j(luò)ar包。
2. 然后將項(xiàng)目進(jìn)行clean、compile、package、install
注:
1、package 命令執(zhí)行時(shí),會(huì)先從遠(yuǎn)程倉(cāng)庫(kù)下載最新 jar 包,在 reimport 無(wú)效時(shí),可起到代替 reimport 的效果;
2、同理,使用 maven install 也可,但生成的 jar 包會(huì)同時(shí)到本地倉(cāng)庫(kù);使用 maven deploy 也可,但生成的 jar 包會(huì)同時(shí)到遠(yuǎn)程倉(cāng)庫(kù);
3、建議使用 package 命令,生成的 jar 包只保存在項(xiàng)目文件夾中,不影響倉(cāng)庫(kù) 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證書(shū)驗(yàn)證的問(wèn)題,因此需要在IDEA中添加配置來(lái)忽略SSL證書(shū)的驗(yàn)證。
上述代碼的作用是忽略SSL證書(shū)檢查,下面的Importing是指導(dǎo)入依賴時(shí)忽略SSL證書(shū)檢查,Runner是指運(yùn)行Maven插件或目標(biāo)時(shí)忽略SSL證書(shū)檢查。
然后把倉(cāng)庫(kù)里緩存失敗的文件刪除,再刷新maven,依賴即可下載成功!
5. 一鍵用腳本刪除maven倉(cāng)庫(kù)里所有的lastUpdated文件,然后刷新maven
一個(gè)一個(gè)刪除maven倉(cāng)庫(kù)里下載失敗的緩存文件太慢了,直接用腳本刪除maven倉(cāng)庫(kù)里所有的lastUpdated文件。操作方法如下:
新建一個(gè)文件把名稱后綴名改為clean.bat
@echo off rem create by NettQun rem 倉(cāng)庫(kù)路徑 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 改成你自己的倉(cāng)庫(kù)地址,保存退出,退出后雙擊運(yùn)行即可。然后刷新maven,所有依賴都下載成功了!
三、另一種解決方法
1. 直接在Maven中央倉(cāng)庫(kù)搜索我們需要的jar包
Maven中央倉(cāng)庫(kù)地址:https://mvnrepository.com/
如我的不能被Maven識(shí)別的jar包:org.apache.zookeeper:zookeeper:pom:3.4.6
2. 點(diǎn)擊需要的jar包名稱進(jìn)入版本庫(kù),下載對(duì)應(yīng)版本
需要哪個(gè)版本,就點(diǎn)擊對(duì)應(yīng)版本
點(diǎn)擊對(duì)應(yīng)版本的包進(jìn)入如下界面,點(diǎn)擊pom/jar下載文件。
下載好后把這個(gè)文件復(fù)制到maven倉(cāng)庫(kù)中對(duì)應(yīng)的目錄下。
然后刷新maven,或者重啟idea。
總結(jié)
到此這篇關(guān)于maven加載依賴報(bào)錯(cuò)的原因分析及解決方法的文章就介紹到這了,更多相關(guān)maven加載依賴報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Resty開(kāi)發(fā)restful版本的Jfinal深入研究
這篇文章主要為大家介紹了Resty開(kāi)發(fā)restful版本的Jfinal深入研究有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Java使用JDBC向MySQL數(shù)據(jù)庫(kù)批次插入10W條數(shù)據(jù)(測(cè)試效率)
使用JDBC連接MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)插入的時(shí)候,特別是大批量數(shù)據(jù)連續(xù)插入(100000),如何提高效率呢?今天小編通過(guò)本教程給大家介紹下2016-12-12Java開(kāi)發(fā)之內(nèi)部類對(duì)象的創(chuàng)建及hook機(jī)制分析
這篇文章主要介紹了Java開(kāi)發(fā)之內(nèi)部類對(duì)象的創(chuàng)建及hook機(jī)制,結(jié)合實(shí)例形式分析了java基于hook機(jī)制內(nèi)部類對(duì)象的創(chuàng)建與使用,需要的朋友可以參考下2018-01-01java配置多個(gè)過(guò)濾器優(yōu)先級(jí)以及幾個(gè)常用過(guò)濾器操作
這篇文章主要介紹了java配置多個(gè)過(guò)濾器優(yōu)先級(jí)以及幾個(gè)常用過(guò)濾器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07java遍歷途中修改數(shù)據(jù)及刪除數(shù)據(jù)的方法總結(jié)
在使用java的集合類遍歷數(shù)據(jù)的時(shí)候,在某些情況下可能需要對(duì)某些數(shù)據(jù)進(jìn)行刪除,下面這篇文章主要給大家介紹了關(guān)于java遍歷途中修改數(shù)據(jù)及刪除數(shù)據(jù)的方法總結(jié),需要的朋友可以參考下2023-10-10詳解Java中的線程讓步y(tǒng)ield()與線程休眠sleep()方法
Java中的線程讓步會(huì)讓線程讓出優(yōu)先級(jí),而休眠則會(huì)讓線程進(jìn)入阻塞狀態(tài)等待被喚醒,這里我們對(duì)比線程等待的wait()方法,來(lái)詳解Java中的線程讓步y(tǒng)ield()與線程休眠sleep()方法2016-07-07