hg克隆openjdk官方jdk11u仓库耗时过长问题咨询
问题解答
仓库URL有效性说明
你使用的http://hg.openjdk.java.net/jdk-updates/jdk11u是OpenJDK旧版官方Mercurial仓库地址,地址本身有效,但存在两个核心问题导致拉取极慢:
- 该仓库目前已处于迁移状态,访问优先级低于官方GitHub镜像,连接稳定性差,国际访问带宽限制明显
- 你使用了HTTP协议而非HTTPS协议,传输过程中容易被运营商限流、丢包,进一步降低拉取速度
遗漏的配置及优化方案
- 你未配置Mercurial的传输优化参数,可在用户目录下的
.hgrc配置文件中添加如下内容提升拉取效率:
[ui] ssh = ssh -C [http] compress = true lowpriority = false timeout = 300
- 你使用的默认克隆逻辑会拉取仓库全量历史提交元数据,JDK版本仓库的提交历史体量极大,哪怕指定了版本标签也会消耗大量时间,可添加
--depth 1参数开启浅克隆,仅拉取指定标签对应的单层提交记录,优化后的命令如下:hg clone http://hg.openjdk.java.net/jdk-updates/jdk11u -r jdk-11.0.12+6 --depth 1 /home/jack/hgclone/
更高效的替代方案
如果上述优化后速度仍然不理想,可直接使用OpenJDK官方GitHub镜像拉取源码,所有标签和源码和原Hg仓库完全一致,拉取速度提升非常明显,对应命令如下:git clone --depth 1 --branch jdk-11.0.12+6 https://github.com/openjdk/jdk11u.git /home/jack/hgclone/
内容的提问来源于stack exchange,提问作者Uttareshwar
相关产品推荐
相关产品推荐

