O Bazel é uma ferramenta de teste e compilação de código aberto semelhante a Make, Maven e Gradle. Ele usa uma linguagem de compilação legível e de alto nível. O Bazel é compatível com projetos em várias linguagens e cria saídas para várias plataformas. O Bazel é compatível com grandes bases de código em vários repositórios e um grande número de usuários.
Vantagens
O Bazel oferece as seguintes vantagens:
Linguagem de compilação de alto nível. O Bazel usa uma linguagem abstrata e legível para descrever as propriedades de compilação do seu projeto em um alto nível semântico. Ao contrário de outras ferramentas, o Bazel opera nos conceitos de bibliotecas, binários, scripts e conjuntos de dados, protegendo você da complexidade de gravar chamadas individuais para ferramentas como compiladores e vinculadores.
O Bazel é rápido e confiável. O Bazel armazena em cache todo o trabalho feito anteriormente e rastreia alterações no conteúdo do arquivo e nos comandos de criação. Dessa forma, o Bazel sabe quando algo precisa ser recriado e recria somente isso. Para acelerar ainda mais as compilações, você pode configurar seu projeto para ser criado de maneira altamente paralela e incremental.
O Bazel é multiplataforma. O Bazel é executado em Linux, macOS e Windows. O Bazel pode criar binários e pacotes implantáveis para várias plataformas, incluindo computador, servidor e celular, a partir do mesmo projeto.
Escalonamento do Bazel. O Bazel mantém agilidade enquanto processa compilações com mais de 100 mil arquivos de origem. Ele funciona com dezenas de milhares de repositórios e bases de usuários.
O Bazel é extensível. Muitos idiomas são compatíveis, e é possível estender o Bazel para qualquer outra linguagem ou biblioteca.
Como usar o Bazel
Para criar ou testar um projeto com o Bazel, faça o seguinte:
Configure o Bazel. Faça o download e instale o Bazel.
Configure um espaço de trabalho do projeto, que é um diretório em que o Bazel procura entradas de build e arquivos
BUILD
e armazena saídas de build.Grave um arquivo
BUILD
, que informa ao Bazel o que criar e como criá-lo.Escreva seu arquivo
BUILD
declarando destinos de versão usando o Starlark, uma linguagem específica do domínio. Veja o exemplo aqui.Um destino de versão especifica um conjunto de artefatos de entrada que o Bazel vai criar e suas dependências, a regra de compilação que o Bazel usará para criá-lo e as opções que configuram a regra de compilação.
Uma regra de compilação especifica as ferramentas de compilação que o Bazel usará, como compiladores e vinculadores, e suas configurações. O Bazel inclui várias regras de compilação que abrangem os tipos de artefatos mais comuns nas linguagens compatíveis das plataformas compatíveis.
Execute o Bazel na linha de comando. O Bazel coloca suas saídas no espaço de trabalho.
Além de criar, é possível usar o Bazel para executar testes e consultar a versão para rastrear dependências no código.
Processo de compilação do Bazel
Ao executar uma compilação ou um teste, o Bazel faz o seguinte:
Carrega os arquivos
BUILD
relevantes para o destino.analisa as entradas e as respectivas dependências, aplica as regras de criação especificadas e produz um gráfico de ação;
Executa as ações de compilação nas entradas até que as saídas de compilação finais sejam produzidas.
Como todo o trabalho de compilação anterior é armazenado em cache, o Bazel pode identificar e reutilizar artefatos armazenados em cache e só recompilar ou testar novamente o que foi alterado. Para reforçar ainda mais a correção, configure o Bazel para executar versões e testes hermeticamente por meio do sandbox, minimizando o desvio e maximizando a reprodutibilidade.
Gráfico de ação
O gráfico de ações representa os artefatos de compilação, as relações entre eles e as ações de compilação que o Bazel realizará. Graças a esse gráfico, o Bazel pode rastrear alterações no conteúdo do arquivo, bem como alterações em ações, como comandos de versão ou teste, e saber que trabalho de compilação foi feito anteriormente. O gráfico também permite rastrear dependências facilmente no código.
Tutoriais para começar
Para começar a usar o Bazel, consulte Primeiros passos ou vá diretamente para os tutoriais do Bazel: