maven-build-downloading


1. 場景描述

maven庫用的是公司私服和阿里雲結合的方式(maven多倉庫配置),本項目maven依賴的有其他項目組的jar包(單點登錄),但是天有不測風雲,依賴單點登錄的好幾個jar包,在編譯(build)的時候一直Downloading,卡死了。

2. 解決方案

2.1 問題定位

以前好好的,突然不行了,首先肯定先找jar包提供方,然而單點登錄項目組回復N久沒動了,看了maven庫jar包是沒變化,里面的日期也沒變化,但是幾個同事都不能更新了,肯定是私服上的jar包有變化了,看了下私服上md5、sha1這些好像變化了。。但是也不確定,也不好說,還是看看怎么解決吧。

2.2 解決方案

問題原因是服務器配置文件跟本地文件進行對比(maven-metadata.xml),通過里面的時間戳進行對比,本地日期大於等於服務器jar包日期,不更新jar包;服務器日期大於本地庫日期,更新jar包,問題就出在maven-metadata這個問題文件上了。

兩個解決方案

2.2.1 更改setting文件。

本人maven配置文件在:E:\m2下,打開文件,找到jar包對應的倉庫。

<updatePolicy>always</updatePolicy>

-----------------更改為----------
<updatePolicy>never</updatePolicy>

updatePolicy有三個參數:aways:每次,never:從不,daily:每日,這樣就可以編譯成功了。

2.2.2 重新下載

當Downloading卡住了,首先停止服務,去本地maven倉庫(本人:E:\m2\repository)下面找到該jar包對應文件夾,在文件夾里面會有個lock后綴的文件,就是在比對過程中出問題了,文件鎖住了,刪除了該lock文件,但是測試了下不行,下載還是會有問題,要刪除了整個文件夾,例如“E:\m2\repository\com\oracle\ojdbc6\11.2.0.3,把文件夾11.2.0.3整個給刪除了,重新編譯下載,因為整個文件夾都沒有了,maven編譯的時候就會去下載該jar包,相當於新的下載,不會去比對,這樣就可以直接通過了。

2.2.3 結論

建議采用第二種,原因:

(1)直接,快速,直接把jar包對應的文件夾刪除了,重新下載就好了。

(2)第一種方案會存在問題,假如外圍系統jar包正常更新了,版本沒變化,但是增加了新的方法,這樣就更新不到新的方法了,會有問題。


I’m 「軟件老王」,如果覺得還可以的話,關注下唄,后續更新秒知!歡迎討論區、同名公眾號留言交流!


免責聲明!

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



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