記錄IDEA導入Maven項目的方法,以及報錯的解決。
(包含離線環境下maven使用報錯經驗)
遇見的問題:
現象:導入Maven項目后,大面積報錯。明明本地庫中存在對應依賴,也報錯。
分析:在查看了網上的文章之后,大致歸納為以下幾點:
1、maven下載錯誤;
2、maven在使用依賴的時候,會進行一個識別操作,判定庫中的依賴和不合規,則嘗試重新從遠程庫進行下載;
再分別講這兩點情況:
1、maven下載錯誤
分析:
maven下載時,會在本地庫對應的路徑下,先保存以lastupdate結尾的文件名,等下載成功后,該文件會刪除。
maven下載錯誤,主要是在從遠程倉庫進行下載的時候,由於網絡等其它一系列原因,導致maven依賴下載失敗。
同時maven中臨時文件沒有刪除,此時maven對於本地庫中的依賴狀態存在誤判。
即使沒有該依賴,Maven可能會認為此依賴正在下載,並且無法重新開始下載。
解決方法:
徹底刪除該文件,具體方法百度。
2、Maven判定本地庫中的依賴不合規。
Maven在從remote Repository下載完依賴后,會保存一個remote.properties的文件在對應依賴的文件夾下。
Maven通過判斷該文件中的參數和Maven的配置文件Setting.xml中的參數進行比較,判定該依賴是否由可靠的下載來源得來。
判定不合規,則Maven會自動從Remote Repository重新下載。
解決方案:
解決方案有多種:
1、更改remote.propeties中的參數,將標志位刪除(據網上說可以);
2、刪除文件重新下載就完事;
3、手動打包jar包,放到Maven的本地庫中,就不會產生這個remote.propeties的文件了(該方法適用於解決單個或少數幾個依賴出現問題的情況);
我遇到的問題:
(背景及現象: 新入職公司, 離線工作環境中, 使用其它同事的maven和repository, 正常使用了幾天, 突然就大面積報錯, 問題分析及解決過程參考首條評論).
現象:就是導入之后過了一段時間后,很多依賴都報錯,然后嘗試了以上方法,無法解決。
最終解決:
將Maven和本地庫更換為同一個員工使用的。
分析:
由於我使用的Maven和local repository不是同一位員工的;
且斷網工作環境下,無法重新下載依賴;
手動打包jar包沒嘗試過,但應該可以解決,不過我這種情況是大面積報錯,整個本地庫有問題,故也不適合此種解決方案;
不過最終發現使用同一個人的本地庫就可以解決問題了。
終極解決方案:
重新安裝一遍Maven - 重新搞個本地庫(保證二者是同一人使用的)
重新拉一遍項目(確保不是項目的問題)
規范導入Maven項目。
這一套操作下來,應該百分之九十九都能解決問題了。