Una compilación correcta tiene todas sus dependencias indicadas de forma explícita en el archivo BUILD
. Bazel usa esas instrucciones para crear el gráfico de dependencias del proyecto,
que permite compilaciones incrementales precisas.
Para visualizar las dependencias del proyecto de ejemplo, puedes generar una representación de texto del gráfico de dependencias. Para ello, ejecuta el siguiente comando en la raíz del espacio de trabajo:
bazel query --notool_deps --noimplicit_deps "deps(//main:hello-world)" \
--output graph
El comando anterior le indica a Bazel que busque todas las dependencias del objetivo //main:hello-world
(sin incluir las dependencias implícitas y del host) y que formatee el resultado como un gráfico.
Luego, pega el texto en GraphViz.
En Ubuntu, puedes ver el grafo de forma local si instalas GraphViz y xdot Dot Viewer:
sudo apt update && sudo apt install graphviz xdot
Luego, puedes generar y ver el gráfico si canalizas el resultado de texto anterior directamente a xdot:
xdot <(bazel query --notool_deps --noimplicit_deps "deps(//main:hello-world)" \
--output graph)
Como puedes ver, la primera etapa del proyecto de ejemplo tiene un solo objetivo que compila un solo archivo fuente sin dependencias adicionales:
Figura 1: El gráfico de dependencias de hello-world
muestra un solo destino con un solo archivo fuente.
Después de configurar tu espacio de trabajo, compilar tu proyecto y examinar sus dependencias, puedes agregarle complejidad.