解決nexus下載maven索引的問題

用nexus搭建了maven repository的鏡像服務器。當時都安裝好之後,將本地的settings.xml修改成使用該鏡像服務器。這些配置都搞定後,測試時執行任何mvn任務時都存在問題。在管理界面搜尋了一通,沒有找到原因,於是找來nexus的文章進行研究,順便學習一下nexus。閱讀過nexus的手冊後,理解了nexus的管理倉庫的方法,於是開始檢查安裝好的nexus的配置。經過一番排查,確認是由於下載central的索引出錯,導致這個鏡像服務器不可用。

分析日誌,找到爲什麼每次下載時都存在問題,最終在log中發現在執行re-index操作時程序會通過httpclient請求http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.zip 文件時,無法下載到文件。在瀏覽器打開該url時,瀏覽器會自動跳轉到另外一個鏡像地址:http://mirrors.ibiblio.org/pub/mirrors/maven2/dot-index/nexus-maven-repository-index.zip。莫非是httpclient沒辦法處理http 301重定向的情況?如果真是這樣的話,那說明nexus將會一直無法更新central 索引,這將是個嚴重的問題。

在不修改源碼的情況下,我想到了一個解決這個問題的辦法,操作如下:

1、根據錯誤的日誌,將http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties 和 http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.zip 兩個文件用瀏覽器下載到本地;

2、在本地機器上啓動nginx,將這兩個文件按照上面url的路徑將文件存放好;

3、在安裝nexus上,修改/etc/hosts文件,將repo1.maven.org的域名指向自己的機器。

4、重啓nexus(不確認httpclient是否會在程序中做dns緩存,所以重啓一下),重新在central repostory界面上執行update index的任務。

當update index的任務執行完成之後,查看browse index 的tab時就可以看到central的索引了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章