Um build bem-sucedido tem todas as dependências explicitamente declaradas no arquivo
BUILD
. O Bazel usa essas instruções para criar o gráfico de dependência do projeto,
o que permite builds incrementais precisos.
Para visualizar as dependências do projeto de amostra, gere uma representação de 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 instrui o Bazel a procurar todas as dependências do destino
//main:hello-world
(exceto o host e as dependências implícitas) e formatar a
saída como um gráfico.
Em seguida, 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 encadeando a saída do texto acima diretamente para o Xdot:
xdot <(bazel query --notool_deps --noimplicit_deps "deps(//main:hello-world)" \
--output graph)
Como você pode ver, o primeiro estágio do projeto de exemplo tem um único destino que cria um único arquivo de origem sem dependências adicionais:
Figura 1. O gráfico de dependências de hello-world
mostra um único destino com um único
arquivo de origem.
Depois de configurar seu espaço de trabalho, criar seu projeto e examinar as dependências, você pode adicionar um pouco de complexidade.