0%

bazel 供应商模式

Bazel - a fast, scalable, multi-language and extensible build system

在一些情况下,我们需要在没有网络的环境下进行编译,或者一些原因,互联网不再互联网了。

我们可以使用bazel的供应商模式,离线编译,来解决这个问题。

什么是供应商模式?

供应商模式是一项功能,可让您创建外部依赖项的本地副本。这对于离线 build 或您想要控制外部依赖项的来源非常有用。

如何使用供应商模式?

可以通过指定 –vendor_dir 标志来启用供应商模式。

例如,将其添加到 .bazelrc 文件中:

1
2
# Enable vendor mode with vendor directory under <workspace>/vendor_src
common --vendor_dir=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