IDEA Maven依賴下載總是失敗的幾種解決方法
為啥我的IDEA Maven依賴下載總是失敗??我們本地使用 IDEA 運(yùn)行 maven 項(xiàng)目的時(shí)候,有時(shí)候運(yùn)氣不好,就會(huì)遇到某些 maven 依賴無法正常找到、導(dǎo)入。這就會(huì)導(dǎo)致 IDEA 構(gòu)建項(xiàng)目的時(shí)候爆出一堆醒目的紅色 Error。正好最近新拉取一個(gè)項(xiàng)目源碼,本地運(yùn)行項(xiàng)目,又碰到這種情況。按照以前的解決經(jīng)驗(yàn),搗鼓了一下,發(fā)現(xiàn)沒辦法解決。于是研究了一下午,終于解決這個(gè)問題??。吐槽一下,剛開始一度以為是這個(gè)項(xiàng)目有問題,找了一個(gè)同事,發(fā)現(xiàn)他的電腦是卻可以正常運(yùn)行這個(gè)項(xiàng)目。那今天這篇的文章,總結(jié)一下 IDEA 運(yùn)行 maven 項(xiàng)目找不到相關(guān)依賴報(bào)錯(cuò)的問題原因以及解決辦法,希望能有幫助。
1. 網(wǎng)絡(luò)問題,無法下載 maven 依賴
一般來說,如果沒有配置,Maven會(huì)在默認(rèn)的中央倉庫下載各項(xiàng)依賴,而我們?cè)L問這個(gè)地址,網(wǎng)絡(luò)速度不僅慢,網(wǎng)絡(luò)質(zhì)量還差。這就導(dǎo)致了maven 依賴下載速度過慢,有時(shí)候下載還可能會(huì)失敗。maven 依賴下載失敗,這就會(huì)導(dǎo)致 IDEA 找不到相關(guān)依賴。那這個(gè)問題解決辦法也比較簡(jiǎn)單,我們可以通過設(shè)置鏡像(mirrors)地址解決。打開我們本地 maven 配置文件,默認(rèn)地址如下: ${user.home}/.m2/settings.xml
,然后找到 mirrors
節(jié)點(diǎn),在這下面添加以下配置:
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
2. lastUpdated 文件導(dǎo)致依賴無法正常導(dǎo)入
當(dāng)你更新鏡像地址之后,有可能還會(huì)碰到 maven 依賴無法導(dǎo)入,那恭喜你碰到第二個(gè)問題了。maven 依賴下載的時(shí)候,如果碰到網(wǎng)絡(luò)較差,依賴下載失敗,maven 本地將會(huì)生成 lastUpdated 為后綴的文件。
那正常的 maven 依賴如下
只要 lastUpdated 文件存在,maven 依賴將不會(huì)重新下載,所以做簡(jiǎn)單的方法就是,刪除 lastUpdated 文件,重新刷新下載即可。這里提供一鍵刪除 lastUpdated 文件腳本(macos)
# 這里寫你的倉庫路徑 REPOSITORY_PATH=~/.m2/repository echo 正在搜索... find $REPOSITORY_PATH -name "*lastUpdated*" | xargs rm -fr echo 搜索完
3 - maven 依賴沖突,引用錯(cuò)誤
前兩個(gè)問題主要跟本地網(wǎng)絡(luò)有比較大的關(guān)系,那這個(gè)問題,主要是因?yàn)?maven 特性導(dǎo)致。那 maven 有一個(gè)依賴傳遞的特性,如果 A 依賴 B,而 B 依賴 C,那么 C 這個(gè)依賴就會(huì)通過 B 間接傳遞給 A。那這個(gè)問題解決辦法,也比較簡(jiǎn)單,有沖突,我們就直接解決沖突就可以了。我們可以在 IDEA 中安裝一個(gè) Maven Helper 插件,然后打開 pom 文件,點(diǎn)擊 Dependency Analyzer 選項(xiàng),在這里面選中 Conflicts 按鈕,就可以看到當(dāng)前所有沖突的依賴包。選中其中一個(gè)依賴包,就可以在右側(cè)看到所有沖突依賴包的版本。選中其中一個(gè)版本,右鍵選中 Exclude 即可。上面的辦法我們通過排除其他間接依賴從而解決問題。那下面還有一種解決辦法,將間接依賴轉(zhuǎn)化為直接依賴。我們可以把間接依賴直接寫在項(xiàng)目 pom 文件里,這樣 maven 將會(huì)直接使用這個(gè)依賴,其他間接依賴將會(huì)失效。
- 最后
重啟大法,重啟 IDEA,重啟電腦。
到此這篇關(guān)于IDEA Maven依賴下載總是失敗的幾種解決方法的文章就介紹到這了,更多相關(guān)IDEA Maven依賴下載失敗內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實(shí)現(xiàn)原理
這篇文章主要介紹了詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實(shí)現(xiàn)原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06Java14對(duì)于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對(duì)于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09簡(jiǎn)單的用java實(shí)現(xiàn)讀/寫文本文件的示例
同時(shí)也展示了如果從輸入流中讀出來內(nèi)容寫入輸出流中(僅限文本流) 三個(gè)例子可以獨(dú)立存在,所以根據(jù)需要只看其中一個(gè)就行了。2008-07-07一文詳細(xì)解析Java?8?Stream?API中的flatMap方法
這篇文章主要介紹了Java?8?Stream?API中的flatMap方法的相關(guān)資料,flatMap方法是Java?StreamAPI中的重要中間操作,用于將流中的每個(gè)元素轉(zhuǎn)換為一個(gè)新的流,并將多個(gè)流合并為一個(gè)單一的流,常用于處理嵌套集合和一對(duì)多映射,需要的朋友可以參考下2024-12-12Java基于遞歸和循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積算法示例
這篇文章主要介紹了Java基于遞歸和循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積算法,結(jié)合實(shí)例形式分析了Java使用遞歸與循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積相關(guān)概念、原理與操作技巧,需要的朋友可以參考下2017-12-12synchronized?和?Lock?的異同點(diǎn)(如何讓選擇)
這篇文章主要介紹了?synchronized和Lock的異同點(diǎn)(如何讓選擇),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09