Bazel 目标
Bazel 目标是 Bazel 可构建、运行或测试的单元。 目标作为规则调用被声明在 BUILD 或 构建.bazel 文件中,并通过类似 //src/main:app 的 标签进行标识,其中 //src/main 是软件包, app 是目标名称。
主要目标 类型有:
二进制 (规则以
_binary结尾)会生成可运行或调试的可执行文件。Test (以
_test结尾的规则)会生成 runnable 测试,可通过覆盖率执行。库及其他非可执行文件规则。 这些只能被构建,用作二进制或测试目标的依赖项。
查找目标
Bazel 工具窗口会列出项目内的所有目标。 这里是浏览、搜索和操作目标的主要位置。 在查找特定目标且未打开源文件或 BUILD 文件时可使用此功能。
打开 Bazel 工具窗口
在右侧边栏,点击 Bazel 图标。 您也可以从主菜单中选择 。

按名称搜索目标
在 Bazel 工具窗口中,点击搜索字段或按下 Ctrl+F 以聚焦。
开始输入部分目标标签。 树中的筛选器会筛选出标签与查询匹配的目标。

按类型使用筛选器筛选目标
如果只查找 runnable 或可测试目标,可以使用筛选器进行筛选,隐藏无关目标。
在 Bazel 工具窗口中,点击工具栏上的
过滤器。
请选择一个选项:
所有目标 (默认)
仅 runnable——只保留
*_binary目标。仅可测试——只保留
*_test目标。
运行、测试、构建和调试目标
不同类型的目标有不同的关联操作:
Action | 应用于 |
|---|---|
运行 |
|
测试 |
|
调试 |
|
构建 | 任意目标,包括库 |
使用覆盖率运行 |
|
IntelliJ IDEA 会为每次运行、测试或调试操作创建一个临时 Bazel 运行配置。 如需保存、重命名与配置运行配置,请参阅 运行/调试配置。
在编辑器中:点击相关代码元素旁的
装订区域图标,例如
main()入口点或 BUILD 文件中的规则调用,然后选择操作。
在 Bazel 工具窗口中:右键点击目标并选择操作。 或者,双击目标:此操作会运行可执行文件目标(二进制和测试),对非可执行文件目标则进行构建。

在已有的运行配置中:在 运行微件选择已保存的 Bazel 运行配置,然后选择 运行 或 调试。
在 Bazel 文件目标 微件中:当编辑器中打开与目标相关的文件时,点击状态栏上的该微件,展开目标并选择操作。

一个文件可能关联多个目标。
如果 Bazel 文件目标 微件处于非活动状态,表示插件无法将当前编辑器文件映射到任何 Bazel 目标。 请检查以下内容:
当前打开的文件属于已同步的 Bazel 目标
未被任何目标
srcs引用的文档、脚本、生成文件和其他源文件即使打开也处于非激活状态。项目已同步。
该微件会从上次项目同步中读取目标信息。 将文件添加到
srcs或编辑 BUILD 文件后,请重新同步项目,以便微件获取更改。
在目录下运行所有测试
要同时运行或覆盖多个测试目标:
在 Bazel 工具窗口中,定位包含测试目标的目录。
右键点击目录节点,分别选择 运行所有测试 或 使用覆盖率运行所有测试。
IntelliJ IDEA 会运行该目录下的每个
*_test目标,并合并结果。
构建整个项目
要构建所选 项目视图 ,请转到 或按下 Ctrl+F9。
目标同步设置
如需控制哪些目标可在 IDE 中同步、索引,并可用,请参阅 Bazel 项目视图。