Regras
action_listener
Ver origem da regraaction_listener(name, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, package_metadata, restricted_to, tags, target_compatible_with, testonly, visibility)
AVISO:as ações extras foram descontinuadas. Use aspects em vez disso.
  Uma regra action_listener não produz saída por si só.
  Em vez disso, ele permite que os desenvolvedores de ferramentas insiram
  extra_actions no sistema de build,
  fornecendo um mapeamento da ação para extra_action
  .
  Os argumentos dessa regra mapeiam mnemônicos de ação para regras
  extra_action.
  Ao especificar a opção 
  --experimental_action_listener=<label>,
  o build vai usar o action_listener especificado para inserir
  extra_actions no gráfico de build.
Exemplo
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 | Nome: obrigatório Um nome exclusivo para essa segmentação. | 
| extra_actions | Lista de marcadores; obrigatórioUma lista de destinos extra_actionque
        esteaction_listenerdeve adicionar ao gráfico de build.
        Por exemplo,[ "//my/tools:analyzer" ]. | 
| mnemonics | Lista de strings; obrigatórioUma lista de mnemônicos de ação que este action_listenerprecisa detectar,
        por exemplo,[ "Javac" ].Os mnemônicos não são uma interface pública. Não há garantia de que os mnemônicos e as ações deles não vão mudar. | 
extra_action
Ver origem da regraextra_action(name, data, aspect_hints, cmd, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, licenses, out_templates, package_metadata, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
AVISO:as ações extras foram descontinuadas. Use aspects em vez disso.
  Uma regra extra_action não produz nenhuma saída significativa
  quando especificada como um destino de build regular. Em vez disso, ele permite que os desenvolvedores de ferramentas
  insiram ações adicionais no gráfico de build que substituem as ações atuais.
  Consulte action_listener para detalhes
  sobre como ativar extra_actions.
  Os extra_actions são executados como uma linha de comando. A ferramenta de linha de comando recebe acesso a um arquivo que contém um buffer de protocolo como $(EXTRA_ACTION_FILE) com informações detalhadas sobre a ação original que está sendo substituída.
  Ele também tem acesso a todos os arquivos de entrada que a ação original tem.
  Consulte extra_actions_base.proto para mais detalhes sobre os dados armazenados no buffer de protocolo. Cada arquivo proto
  contém uma mensagem ExtraActionInfo.
Assim como todas as outras ações, as ações extras são colocadas em sandbox e precisam ser projetadas para lidar com isso.
Argumentos
| Atributos | |
|---|---|
| name | Nome: obrigatório Um nome exclusivo para essa segmentação.Você pode se referir a essa regra por labelno argumentoextra_actionsdas regras action_listener. | 
| cmd | String; obrigatórioO comando a ser executado. Como o atributo cmd genrule, mas com as seguintes diferenças: 
 | 
| out_templates | Lista de strings. O padrão é  extra_action.O modelo pode usar as seguintes variáveis: 
 | 
| requires_action_output | Booleano; o padrão é  extra_actionrequer que a saída da
        ação original esteja presente como entrada para esteextra_action.Quando for "true" (o padrão é "false"), a extra_action poderá presumir que as saídas da ação original estão disponíveis como parte das entradas dela. | 
| tools | Lista de rótulos. O padrão é  toolpara essa regra.Consulte a definição de dependências para mais informações. 
          O sistema de build garante que esses pré-requisitos sejam criados antes da execução do comando
           Todas as ferramentas e dependências de dados são consolidadas em uma única árvore em que o comando pode usar caminhos relativos. O diretório de trabalho será a raiz dessa árvore unificada. |