Bazel - a fast, scalable, multi-language and extensible build system
在一些情况下,我们需要在没有网络的环境下进行编译,或者一些原因,互联网不再互联网了。
我们可以使用bazel的供应商模式,离线编译,来解决这个问题。
什么是供应商模式?
供应商模式是一项功能,可让您创建外部依赖项的本地副本。这对于离线 build 或您想要控制外部依赖项的来源非常有用。
如何使用供应商模式?
可以通过指定 –vendor_dir 标志来启用供应商模式。
例如,将其添加到 .bazelrc 文件中:
1 | Enable vendor mode with vendor directory under <workspace>/vendor_src |
供应商目录可以是相对于工作区根目录的相对路径,也可以是绝对路径。
离线构建目标
将外部依赖项作为供应商提供后,您可以通过以下方式离线构建目标:
1 | bazel build --vendor_dir=vendor_src //src/main:hello-world //src/test/... |
该 build 应在没有网络访问权限和代码库缓存的干净 build 环境中运行。
因此,您应该能够提交供应商源代码,并在其他机器上离线构建相同的目标。
资料
https://bazel.build/external/vendor?hl=zh-cn