在可用的下载路径上准备 Bazel 仓库缓存
将所需依赖抓取到选定的缓存中,将其转移到受限环境,并在该环境中使用相同的 repository_cache 选项。
当 Bazel 无法通过目标环境的代理获取依赖时,仓库缓存可以提供已批准的依赖字节。
- 在具备预期访问权限的机器上,使用所需的项目状态和 Bazel 版本抓取到选定的缓存:
bazel fetch --repository_cache=/path/to/repository-cache //... - 通过项目的制品流程转移准备好的缓存。
- 在目标环境中使用相同的
--repository_cache选项选择其路径。为其他项目状态构建的缓存可能不完整。
较旧的变通做法使用 --distdir,现已被记录为已弃用。该机制要求归档文件的文件名与 URL 的基名一致,并且其哈希与声明的下载请求一致。未解包的源码树不能替代它,而移除哈希会移除制品选择的一部分。
这并不能提供所有离线前提条件。Bzlmod 注册表元数据、Git 仓库以及由仓库规则启动的命令可能有额外需求。如果要求实时通过代理抓取,请检查其实际的下载器和 URL,而不是替换依赖定义来掩盖连接失败。