You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Bazel中执行`bazel build //...`时,哪些目标属于顶层目标?

Bazel顶层目标与bazel build //...的相关问题解答

根据Bazel术语表的定义:

当构建目标在Bazel命令行中被显式指定时,它就是顶层目标。比如,假设//:foo依赖//:bar,执行bazel build //:foo时,//:foo是顶层目标,//:bar不算——哪怕它也需要被构建。顶层和非顶层目标的核心区别是:命令行(或.bazelrc)设置的标志会直接配置顶层目标的环境,但非顶层目标的配置可能会被转换修改。

回到你的问题:执行bazel build //...时,所有被//...通配符匹配到的目标,都会被当作顶层目标。

这和--remote_download_outputs选项直接相关:这个选项用来控制Bazel从远程缓存下载哪些输出文件。因为所有匹配到的目标都是顶层目标,所以--remote_download_outputs的规则会作用于所有这些目标的输出——比如设为all的话,所有顶层目标的输出都会被下载到本地;设为minimal的话,只会下载直接需要的必要输出。

要注意的是,这些顶层目标的依赖目标依然是非顶层目标,不会受到顶层目标专属的命令行标志配置影响。

内容的提问来源于stack exchange,提问作者sdgfsdh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:31:00