關於 Eclipse P2 鏡像那些事

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 鏡像機制:

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