Navegar pela extensa lista de flags de linha de comando do Bazel pode ser um desafio. Esta página se concentra nas flags mais importantes que você precisa conhecer.
Opções gerais úteis
As flags a seguir devem ser definidas explicitamente na linha de comando.
Sinalização | Descrição |
---|---|
|
É possível organizar sinalizações em um arquivo .bazelrc em configurações,
como as de depuração ou de lançamento de builds. Outros grupos de configuração podem
ser selecionados com --config=<group> .
|
|
O Bazel precisa tentar o máximo possível continuar com a execução de build e teste. Por padrão, o Bazel falha rapidamente. |
|
Ao usar a execução remota ou o armazenamento em cache (disco e remoto), é possível sinalizar para
o Bazel que você
quer fazer o download de todos os artefatos de build (intermediário) da seguinte maneira:
--remote_download_outputs=all |
|
Adiciona informações de build (usuário, carimbo de data/hora) a binários. |
Descobrir problemas de build e teste
As flags a seguir podem ajudar você a entender melhor os erros de build ou teste do Bazel.
Sinalização | Descrição |
---|---|
|
Mostra quais flags são definidas implicitamente por arquivos .bazelrc definidos pelo usuário, definidos pela máquina ou pelo projeto. |
|
Por padrão, o Bazel tenta evitar spam de registro e só imprime avisos
do compilador e a saída de depuração do Starlark para pacotes e subpacotes solicitados na
linha de comando. Para desativar toda a filtragem, defina
--auto_output_filter=none .
|
|
Permite analisar erros de sandbox. Para saber por que o Bazel cria builds em sandbox por padrão e o que fica em sandbox, consulte nossa documentação de sandboxing. |
|
Mostra uma lista abrangente de todos os comandos que o Bazel executa durante um build, independente de ter sucesso ou falhar |
Inicialização
Sinalização | Descrição |
---|---|
|
É possível especificar opções padrão do Bazel em arquivos .bazelrc. Se
vários arquivos .bazelrc existirem, você pode selecionar qual
.bazelrc é usado adicionando --bazelrc=<path to
the .bazelrc file> .
|
|
Limita a quantidade de RAM usada pelo servidor do Bazel.
Por exemplo, o código a seguir limita o tamanho do heap do Bazel a 3 GB:
--host_jvm_args=-Xmx3g |
|
Controla a árvore de saída do Bazel. O Bazel não armazena saídas de build, incluindo registros, na própria árvore de origem. Em vez disso, ele usa uma árvore de saída distinta para essa finalidade. |
Testes do Bazel
As flags a seguir estão relacionadas ao teste do Bazel
Sinalização | Descrição |
---|---|
|
Faz com que os testes Java aguardem uma conexão de depurador antes de serem executados. |
|
O número de vezes que os testes são executados. Por exemplo, para executar testes N vezes, adicione
--runs_per_test=N . Isso pode ser útil para depurar
testes instáveis e verificar se uma correção faz com que um teste seja aprovado de forma consistente.
|
|
Especifica o modo de saída. Por padrão, o Bazel captura a saída do teste em
arquivos de registro locais. Ao iterar em um teste corrompido, normalmente é necessário usar
--test_output=streamed para conferir a saída do teste em
tempo real.
|
Execução do Bazel
As flags a seguir estão relacionadas à execução do Bazel.
Sinalização | Descrição |
---|---|
|
Muda a forma como os executáveis são invocados. Por exemplo, --run_under="strace -c" é
usado com frequência para depuração.
|
Opções do bazelrc específicas do usuário
As flags a seguir estão relacionadas às opções .bazelrc específicas do usuário.
Sinalização | Descrição |
---|---|
|
Um caminho para um diretório em que o Bazel pode ler e gravar ações e saídas de ações.
Se o diretório não existir, ele será criado.
É possível compartilhar artefatos de build entre várias ramificações ou espaços de trabalho e acelerar
os builds do Bazel adicionando
--disk_cache=<path> ao comando.
|
|
O número de jobs simultâneos a serem executados. Isso normalmente só é necessário ao usar a execução remota, em que um cluster de build remoto executa mais jobs do que você tem núcleos localmente. |
|
Limita a quantidade de CPU ou RAM consumida por ações executadas localmente. |
|
Permite que o sandbox crie os diretórios do sandbox abaixo desse caminho. Por padrão, o Bazel executa ações locais em sandbox, o que aumenta a sobrecarga do build. |
Opções do bazelrc específicas do projeto
As flags a seguir estão relacionadas às opções .bazelrc específicas do projeto.
Sinalização | Descrição |
---|---|
|
Tente novamente cada teste até o número especificado de vezes em caso de falha. Isso é especialmente útil na integração contínua. Os testes que exigem mais de uma tentativa para serem aprovados são marcados como FLAKY no resumo do teste. |
|
Um URI de um endpoint de armazenamento em cache. Configurar o armazenamento em cache remoto pode ser uma ótima maneira de acelerar as compilações do Bazel. Ele pode ser combinado com um cache de disco local. |
|
Forçar o download de saídas de build remoto cujo caminho corresponde a esse padrão,
independente da configuração --remote_download_outputs . Vários
padrões podem ser especificados repetindo essa flag.
|
|
HOST ou HOST:PORT de um endpoint de execução remota. Transmita esse valor se estiver usando
um serviço de execução remota. Muitas vezes, você vai precisar adicionar
--remote_instance_name=<name> .
|
|
O valor a ser transmitido como instance_name na API de execução remota.
|
|
Se especificado, um carimbo de data/hora é adicionado a cada mensagem gerada pelo Bazel, especificando o horário em que a mensagem foi exibida. Isso é útil em sistemas de CI para entender rapidamente qual etapa levou quanto tempo. |
|
Mesmo com a execução remota, a execução local de algumas ações de build pode ser mais rápida. Isso depende de fatores como a capacidade do cluster de build, a velocidade da rede e os atrasos da rede. |