规则
action_listener
查看规则来源action_listener(name, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, restricted_to, tags, target_compatible_with, testonly, visibility)
警告:额外操作已弃用。请改用 aspects。
  action_listener 规则本身不会产生任何输出。
  相反,它允许工具开发者通过提供从操作到 extra_action
   的映射,将 extra_action 插入到 build 系统中。
  此规则的实参将操作助记符映射到 extra_action 规则。
  通过指定选项 
  --experimental_action_listener=<label>,build 将使用指定的 action_listener 将 extra_action 插入到 build 图中。
示例
action_listener(
    name = "index_all_languages",
    mnemonics = [
        "Javac",
        "CppCompile",
        "Python",
    ],
    extra_actions = [":indexer"],
)
action_listener(
    name = "index_java",
    mnemonics = ["Javac"],
    extra_actions = [":indexer"],
)
extra_action(
    name = "indexer",
    tools = ["//my/tools:indexer"],
    cmd = "$(location //my/tools:indexer)" +
          "--extra_action_file=$(EXTRA_ACTION_FILE)",
)
参数
| 属性 | |
|---|---|
| name | 名称;必需 相应目标的唯一名称。 | 
| extra_actions | 标签列表;必需 extra_action目标的列表,此action_listener应添加到 build 图中。
        例如[ "//my/tools:analyzer" ]。 | 
| mnemonics | 字符串列表;必需此 action_listener应侦听的操作助记符列表,例如[ "Javac" ]。助记符不是公共接口。 无法保证助记符及其操作不会发生变化。 | 
extra_action
查看规则来源extra_action(name, data, cmd, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, out_templates, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
警告:额外操作已弃用。请改用 aspects。
  当 extra_action 规则被指定为常规 build 目标时,不会产生任何有意义的输出。相反,它允许工具开发者将其他操作插入到遮盖现有操作的 build 图中。
  如需详细了解如何启用 extra_action,请参阅 action_listener。
  extra_action 以命令行形式运行。命令行工具可访问包含协议缓冲区的 $(EXTRA_ACTION_FILE),其中包含有关其所影子处理的原始操作的详细信息。它还可以访问原始操作可以访问的所有输入文件。
  如需详细了解存储在协议缓冲区内的数据,请参阅 extra_actions_base.proto。每个 proto 文件都包含一个 ExtraActionInfo 消息。
与所有其他操作一样,额外操作也处于沙盒环境中,因此应设计为能够处理这种情况。
参数
| 属性 | |
|---|---|
| name | 名称;必需 相应目标的唯一名称。您可以在  action_listener规则的extra_actions实参中通过label引用此规则。 | 
| cmd | 字符串;必需要运行的命令。 与 genrule cmd 属性类似,但存在以下区别: 
 | 
| out_templates | 字符串列表;默认值为  extra_action命令生成的文件所对应的模板列表。模板可以使用以下变量: 
 | 
| requires_action_output | 布尔值;默认值为  extra_action需要将原始操作的输出作为输入提供给此extra_action。如果为 true(默认值为 false),则 extra_action 可以假定原始操作输出作为其输入的一部分可用。 | 
| tools | 标签列表;默认值为  tool依赖项列表。如需了解详情,请参阅依赖项的定义。 
          构建系统会确保在运行  所有工具及其数据依赖项都整合到单个树中,命令可以在其中使用相对路径。工作目录将是该统一树的根目录。 |