Analisar o gráfico de dependências

Um build bem-sucedido tem todas as próprias dependências explicitamente declaradas no arquivo BUILD. O Bazel usa essas instruções para criar o gráfico de dependências do projeto, o que permite builds incrementais precisos.

Para visualizar as dependências do projeto de amostra, gere uma representação em texto do gráfico de dependências executando este comando na raiz do espaço de trabalho:

bazel query --notool_deps --noimplicit_deps "deps(//main:hello-world)" \
  --output graph

O comando acima diz ao Bazel para procurar todas as dependências do //main:hello-world de destino (excluindo dependências implícitas e de host) e formatar a saída como um gráfico.

Depois, cole o texto no GraphViz.

No Ubuntu, é possível visualizar o gráfico localmente instalando o GraphViz e o xdot Dot Viewer:

sudo apt update && sudo apt install graphviz xdot

Em seguida, você pode gerar e visualizar o gráfico canalizando a saída de texto acima diretamente para xdot:

xdot <(bazel query --notool_deps --noimplicit_deps "deps(//main:hello-world)" \
  --output graph)

Como podemos ver, o primeiro estágio do projeto de amostra tem um único destino que cria um único arquivo de origem sem outras dependências:

Gráfico de dependências de &quot;hello-world&quot;

Figura 1. O gráfico de dependência de hello-world mostra um único destino com um único arquivo de origem.

Depois de configurar o espaço de trabalho, criar o projeto e examinar as dependências, será possível aumentar a complexidade.