Maven本地倉庫中有jar包,但項目編譯失敗,顯示jar包不存在


背景:同事從碼雲上克隆項目,項目編譯不通過,報錯信息是有一個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>
View Code

    好處:服務器在國內,下載速度快;jar包資源更齊全(本次遇到的這個缺失的包,國外的中央倉庫沒有,阿里雲倉庫就有)。

  b :不修改中央倉庫,從其他地方拷貝一個jar包到他的本地倉庫路徑下面(本次我們是用的這種方法,后面還遇到了其他坑,請繼續往下看...)。

 

2:基於以上兩種解決方案,我們目前選擇的是第二種:直接拷貝 jar 包到他的本地倉庫路徑下。正常邏輯下此時應該就沒有問題了,不料,IDEA 還是編譯不通過,還是顯示jar包不存在。Reimport 重新導包不行,重啟IDEA也不行。

        

 

 2.1: 解決方案:

  可以看到本地倉庫中,有幾個 *.lastUpdated 文件,此時我們把這幾個 .lastUpdated 文件全部刪除,然后重啟IDEA,重啟后,IDEA就編譯通過不報錯了。

  這個.lastUpdated 文件是在下載jar包的時候,由於網絡不好或中央倉庫中沒有這個jar 等原因,導致jar包沒有下載成功而生成的文件。在這里,刪掉這個文件后,IDEA編譯就通過了,可能是因為IDEA被這個.lastUpdated文件給誤導了,認為本地沒有需要的jar包,所以就報錯(自己的猜測,沒有其他依據來佐證...)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM