Eclipse 更新和安裝插件慢?第一反應是換鏡像?是的,網上的建議都這麼寫。但是如果你真的做了,你還是會發現 Eclipse 的手還是不老實,可能開始幾秒鐘還在顯示從你的鏡像上抓取了某某文件,但是後面幾分鐘畫風又開始歪了,各種亂七八糟的外國域名輪番上陣——好傢伙,我只是更新個 Eclipse,它卻划着獨木舟帶你環遊了全世界!
有人說,一些 feature 包寫死了更新站點的地址,導致安裝的時候有些依賴會優先訪問原始的站點地址……有那麼一刻,你想着寫個 MITM,讓不合你心意的更新地址統統回到自己的軌道;冷靜下來想想又不行,有些包確實鏡像沒有,這不是爲難你的鏡像嗎。
也許你想解剖P2的源碼,看看它哪根筋壞了,動動手術,卻發現它的鏡像選擇機制被各種 interface 和層層方法保護住。此刻的你如入迷宮般迷失與茫然。好不容易把SimpleArtifactRepository
類源碼裏的MIRRORS_ENABLED
值改成false
,構建成org.eclipse.equinox.p2.artifact.repository.jar
把原配替換掉,結果運行 Eclipse 發現報錯了,各種版本依賴不兼容……
Eclipse IDE 不行,那就轉向其他機制?CBI aggregator 也是一個命令行運行的鏡像機制,可以不依賴 Eclipse IDE 這樣的包袱。但是,管理鏡像選擇的機制並不存在於它的源碼,仍是依賴下載org.eclipse.equinox.p2
系列的包才能完成。
很少有人提到除了加入鏡像,還需要一個.ini
文件中的參數來明令禁止 Eclipse 的花心。難以找到這樣的解法,因爲博文數量少,除非真的知曉這個參數,才能勉強搜到這一篇,寥寥數語,能拯救你一週的寶貴時間與頭髮——-Declipse.p2.mirrors=false
。
原來,花個幾天幾夜翻閱千行源代碼,還不如在你能找到的 Eclipse 的 ini 配置文件裏面加這麼一個參數啊……
關於管束 Eclipse 鏡像機制:
- 官方文檔:Using Policy Files
- 相關問題