依存関係グラフを確認する

問題を報告 ソースを表示

ビルドが成功すると、すべての依存関係が BUILD ファイルに明示的に記述されます。Bazel では、これらのステートメントを使用してプロジェクトの依存関係グラフが作成され、正確な増分ビルドが可能になります。

サンプル プロジェクトの依存関係を可視化するには、ワークスペースのルートで次のコマンドを実行して、依存関係グラフのテキスト表現を生成します。

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

上記のコマンドは、ターゲット //main:hello-world のすべての依存関係(ホスト依存関係と暗黙的依存関係を除く)を検索し、出力をグラフとしてフォーマットするように Bazel に指示します。

次に、テキストを GraphViz に貼り付けます。

Ubuntu では、GraphViz と xdot ビューアをインストールすることで、グラフをローカルで表示できます。

sudo apt update && sudo apt install graphviz xdot

その後、上のテキスト出力を xdot に直接パイプすることで、グラフを生成して表示できます。

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

ご覧のように、サンプル プロジェクトの第 1 ステージには、追加の依存関係なしで単一のソースファイルをビルドする単一のターゲットがあります。

「hello-world」の依存関係グラフ

図 1. hello-world の依存関係グラフには、1 つのソースファイルと 1 つのターゲットが表示されます。

ワークスペースをセットアップし、プロジェクトをビルドしてその依存関係を確認した後、複雑さを追加できます。