Reglas
action_listener
Ver la fuente de la reglaaction_listener(name, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, restricted_to, tags, target_compatible_with, testonly, visibility)
ADVERTENCIA: Las acciones adicionales dejaron de estar disponibles. En su lugar, usa aspects.
  Una regla action_listener no produce ningún resultado por sí misma.
  En cambio, permite que los desarrolladores de herramientas inserten extra_actions en el sistema de compilación, ya que proporciona una asignación de la acción a extra_action
  .
  Los argumentos de esta regla asignan mnemónicos de acción a reglas de extra_action.
  Si especificas la opción 
  --experimental_action_listener=<label>, la compilación usará el action_listener especificado para insertar extra_actions en el gráfico de compilación.
Ejemplo
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)",
)
Argumentos
| Atributos | |
|---|---|
| name | Nombre: Obligatorio Es un nombre único para este destino. | 
| extra_actions | Lista de etiquetas; obligatoriaLista de destinos extra_actionque esteaction_listenerdebe agregar al gráfico de compilación.
        p. ej.,[ "//my/tools:analyzer" ] | 
| mnemonics | Lista de cadenas; obligatorioEs una lista de mnemónicos de acción que este action_listenerdebe escuchar, p.ej.,[ "Javac" ].Las mnemónicas no son una interfaz pública. No hay garantía de que las mnemónicas y sus acciones no cambien. | 
extra_action
Ver la fuente de la reglaextra_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)
ADVERTENCIA: Las acciones adicionales dejaron de estar disponibles. En su lugar, usa aspects.
  Una regla extra_action no produce ningún resultado significativo cuando se especifica como un destino de compilación normal. En cambio, permite que los desarrolladores de herramientas inserten acciones adicionales en el gráfico de compilación que reemplazan las acciones existentes.
  Consulta action_listener para obtener detalles sobre cómo habilitar extra_actions.
  Los extra_action se ejecutan como una línea de comandos. La herramienta de línea de comandos obtiene acceso a un archivo que contiene un búfer de protocolo como $(EXTRA_ACTION_FILE) con información detallada sobre la acción original que está duplicando.
  También tiene acceso a todos los archivos de entrada a los que tiene acceso la acción original.
  Consulta extra_actions_base.proto para obtener detalles sobre los datos almacenados dentro del búfer de protocolo. Cada archivo .proto contiene un mensaje ExtraActionInfo.
Al igual que todas las demás acciones, las acciones adicionales se ejecutan en un entorno de pruebas y deben diseñarse para controlarlo.
Argumentos
| Atributos | |
|---|---|
| name | Nombre: Obligatorio Es un nombre único para este destino.Puedes hacer referencia a esta regla con labelen el argumentoextra_actionsde las reglas action_listener. | 
| cmd | Cadena; obligatorioComando para ejecutar. Es similar al atributo cmd de genrule, pero con las siguientes diferencias: 
 | 
| out_templates | Lista de cadenas; el valor predeterminado es  extra_action.La plantilla puede usar las siguientes variables: 
 | 
| requires_action_output | Booleano; el valor predeterminado es  extra_actionrequiere que el resultado de la acción original esté presente como entrada para esteextra_action.Cuando es verdadero (el valor predeterminado es falso), el extra_action puede suponer que los resultados de la acción original están disponibles como parte de sus entradas. | 
| tools | Lista de etiquetas. El valor predeterminado es  toolpara esta regla.Consulta la definición de dependencias para obtener más información. 
          El sistema de compilación garantiza que estos requisitos previos se compilen antes de ejecutar el comando  Todas las herramientas y sus dependencias de datos se consolidan en un solo árbol dentro del cual el comando puede usar rutas relativas. El directorio de trabajo será la raíz de ese árbol unificado. |