maven創建離線本地倉庫的坑之verifying availability


maven在管理依賴組件和描述工程全貌上是一把好手,但是,它強烈地依賴聯網環境,特別是對於一些公共的組件。
離線運行,maven本身就支持的不夠友好,離線從來都不是maven的好朋友!
筆者就在搭建maven本地倉庫時遇到了一些麻煩。即使設定了maven配置文件中的settings.xml中localRepository和offline,maven在離線運行過程中依然強烈衝動地要聯網,進行verifying availability ......
尋遍網絡,後來還是stackoverflow上一篇E文,對於這個問題的解決有幫助。對於maven,高於3.1的版本,可以明確指定-llr參數進行避免。但是,低於此版本沒有這個擴展參數,但運行時仍然表現出此種怪異的行爲。

還是依據那篇E文,本來還不太相信那段"鬼"描述,但最後的解決,還是真是依據那段話,也讓筆者認識到maven的坑有多大!這中間還一度曾逼得自己去查閱maven的源代碼,也是夠頭上出一把汗的。。。
因爲筆者是通過聯網環境下載完依賴組件後,然後再悉數轉移陣地,去創建本地倉庫;這樣在本地倉庫裏面,就有一個特殊的臨時文件*.repositories

在聯網的環境下,maven運行並不會顯式遇到問題;在離線時,maven這種聯網的衝動,會導致問題顯形。
E文中介紹刪除這類的臨時文件即可解決,最初筆者還是不太相信,後面發現竟然是正確的!在Linux下可利用下面腳本進行刪除
find . -name "*.repositories" -type f -print -exec rm -rf {} \;
注:後面的斜槓分號都是有效的
這個腳本也讓認識到rm不可刪除子目錄下的某類型文件,也是大奇怪中的小奇怪了:)

日積月累,必可置寶:)

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