背景:同事從碼雲上克隆項目,項目編譯不通過,報錯信息是有一個jar包在Maven倉庫中不存在
此時,他的本地Maven倉庫中確實不存在這個jar包。
解決步驟:
1: Idea中,用Maven 的Reimport 重新導包,正常情況下,如果存在本地倉庫中沒有的jar包,會自動下載。但是,在他電腦上下載不下來(原因:他電腦沒有配置Maven的中央倉庫為阿里雲倉庫)。
1.1 :基於以上情況,有兩種解決方案:
a : 修改Maven的中央倉庫為阿里雲中央倉庫(settings.xml 文件)。

<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url> http://maven.aliyun.com/nexus/content/groups/public/ </url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
好處:服務器在國內,下載速度快;jar包資源更齊全(本次遇到的這個缺失的包,國外的中央倉庫沒有,阿里雲倉庫就有)。
b :不修改中央倉庫,從其他地方拷貝一個jar包到他的本地倉庫路徑下面(本次我們是用的這種方法,后面還遇到了其他坑,請繼續往下看...)。
2:基於以上兩種解決方案,我們目前選擇的是第二種:直接拷貝 jar 包到他的本地倉庫路徑下。正常邏輯下此時應該就沒有問題了,不料,IDEA 還是編譯不通過,還是顯示jar包不存在。Reimport 重新導包不行,重啟IDEA也不行。
2.1: 解決方案:
可以看到本地倉庫中,有幾個 *.lastUpdated 文件,此時我們把這幾個 .lastUpdated 文件全部刪除,然后重啟IDEA,重啟后,IDEA就編譯通過不報錯了。
這個.lastUpdated 文件是在下載jar包的時候,由於網絡不好或中央倉庫中沒有這個jar 等原因,導致jar包沒有下載成功而生成的文件。在這里,刪掉這個文件后,IDEA編譯就通過了,可能是因為IDEA被這個.lastUpdated文件給誤導了,認為本地沒有需要的jar包,所以就報錯(自己的猜測,沒有其他依據來佐證...)。