Maven問題:Could not find metadata org.junit.jupiter:junit-jupiter-api/maven-metadata.xml


遇到這么一個問題。有一個Maven項目,在互聯網環境下,下載jar包后,構建是成功的,但將這些下載后的jar文件移到無互聯網的局域網中構建,就會報這個錯。

如圖:

 

很明顯,如果是互聯網,或者局域網內有nexus私庫的,那么遇到這個問題應該是將庫文件刪了重新構建。但如果是已經完全是使用本地庫,還需要這個問題,那么可以用我發現的這個方法試一試:

根據提示,我在本地庫文件中將maven-metadata-aliyun.xml復制了一份出來,重命名為maven-metadata.xml,構建還是失敗。

偶然的,我執行了如下操作,使構建又能成功了。

前提:在無互聯網的局域網中。

1、首先編輯Maven的settings,將mirror中的互聯網鏡像去掉,換上本地的。比如:

<mirror>
    <id>central</id>
    <mirrorOf>*</mirrorOf>
    <name>central</name>
    <url>file://D:\\java\\localRepository</url>
</mirror>

另外有一個offline參數,我不知道有沒有影響,嘗試以下操作時我是設置為true的。

2、在maven-metadata.xml同目錄結構下有一個resolver-status.properties文件,刪掉它,執行構建。當然這一次還是會失敗,但是resolver-status.properties會被再次生成,查看以下內容,我的里面內容有這么一個文件的描述:maven-metadata-central.xml

3、將原有的maven-metadata-aliyun.xml復制一份,重命名為resolver-status.properties中的文件名,比如我這里就是重命名為maven-metadata-central.xml。

4、再次構建,問題已經解決。

這里要注意的是,第一步里我有一個刪除resolver-status.properties的操作,原因是有時候下載來源不是maven中心庫或者阿里雲庫這么簡單,可能Maven項目的依賴原本就來源於某公司的Nexus的私庫,那么resolver-status.properties中有可能是自定義的私庫地址。刪掉了會重新建立resolver-status.properties,那么缺少的maven-metadata是哪一個,就一目了然了。

 

遇到這個問題可能是我對Maven了解的不夠深入,具體產生的原因其實我是沒搞清楚的。說不定各位大神有更好的解決辦法(比如禁止Maven每次構建下載metadata.xml等,這我也在網上看到過)。

 


免責聲明!

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



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