关于 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 镜像机制:

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