一、問(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證書驗(yàn)證的問(wèn)題,因此需要在IDEA中添加配置來(lái)忽略SSL證書的驗(yàn)證。
上述代碼的作用是忽略SSL證書檢查,下面的Importing是指導(dǎo)入依賴時(shí)忽略SSL證書檢查,Runner是指運(yùn)行Maven插件或目標(biāo)時(shí)忽略SSL證書檢查。
然后把倉(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文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-437024.html
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。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-437024.html
到了這里,關(guān)于maven加載依賴報(bào)錯(cuò)的解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!