系統環境:win10,jdk8,idea2018.2,maven3.3.9,springboot2.2.2RELEASE
一、問題描述
今天接手一個項目,從git上拉下來,配置好jdk與maven后,maven導包一直導不進去。所有maven導的包報紅,pom文件只是<project>標簽上報紅。具體現象截圖如下:
pom文件:
mavenproject:
java文件:
由上圖可以發現,除了jdk自帶包可以導入外,其他外部包一概導入失敗(外部包都是利用maven導入的)。
二、問題分析
該問題出現的原因主要是Maven導包失敗造成的,主要有以下原因:
1、項目問題,版本不兼容(比較少見)
2、pom.xml文件編寫問題,或者沒有寫完整依賴。
3、資源加載時失敗,比如下載的類包只有文件夾沒有jar文件,或者網絡卡頓,或者idea加載類包不及時等原因。
排查本項目的問題:
1、首先我的pom文件沒有改動,基本是不會出現問題的。
2、將鼠標放在pom.xml文件的<project>標簽上,上面會提示報錯信息:
Failed to read artifact descriptor for org.glassfish:javax.el:jar:3.0.1-b06-SNAPSHOT
比如這個是導入org.glassfish:javax.el:jar失敗,我們可以在我們的資源庫中找到這個文件的目錄:資源文件目錄/org/glassfish/javax.el
可以看到這里面maven嘗試下載了很多次,但是文件夾里面基本是沒有jar文件的。
這時候可以將javax.el文件夾整個刪除掉,重新加載maven進行下載就可以,如果還出先問題可以修改下載源地址。
三、問題解決
1、檢查pom文件是否拼寫錯誤
由以上情況可以發現maven導入的包全部失敗,這里不排除是由於pom文件出現錯誤,所以需要仔細檢車下pom文件是否出現簡單的編寫錯誤
2、重新加載maven資源
右擊pom.xml,選擇Maven后點擊Reimport,重新加載類包。
有些項目沒有添加Maven Project的話,需要先添加一下
基本上pom文件寫的正確,進行過重新加載后問題會解決,但是有些項目還是會報紅,可以將mavenProject移除掉再加載一下
以上操作完成后,基本就解決了pom文件報紅,以及類包導入失敗等問題。
注意:有些時候報紅是因為下載類包時網絡比較慢,或者是idea載入類包更新不及時造成的,這些時候就需要等一段時間,或者嘗試重啟軟件等辦法(大多數都是以上情況造成的)。