Bazel フラグ クイック リファレンス

問題を報告 ソースを表示 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Bazel のコマンドライン フラグの長いリストを操作するのは難しい場合があります。このページでは、知っておくべき最も重要なフラグについて説明します。

便利な全般オプション

次のフラグは、コマンドラインで明示的に設定することを想定しています。

フラグ 説明

--config

.bazelrc ファイルのフラグを、デバッグ ビルドやリリース ビルドなどの構成に整理できます。--config=<group> を使用して、追加の構成グループを選択できます。

--keep_going

Bazel は、ビルドとテストの実行を可能な限り継続しようとします。デフォルトでは、Bazel はすぐに失敗します。

--remote_download_outputs

リモート実行またはキャッシュ保存(ディスクとリモートの両方)を使用する場合は、次のように、すべての(中間)ビルド アーティファクトをダウンロードすることを Bazel に通知できます。
--remote_download_outputs=all
デフォルトでは、Bazel は最終バイナリなどの最上位アーティファクトと、ローカル アクションに必要な中間アーティファクトのみをダウンロードします。

--stamp

バイナリにビルド情報(ユーザー、タイムスタンプ)を追加します。

ビルドとテストの問題を検出する

次のフラグは、Bazel のビルドエラーやテストエラーをより深く理解するのに役立ちます。

フラグ 説明

--announce_rc

ユーザー定義、マシン定義、プロジェクト定義の .bazelrc ファイルで暗黙的に設定されているフラグを表示します。

--auto_output_filter

デフォルトでは、Bazel はログスパムを防ぐために、コマンドラインでリクエストされたパッケージとサブパッケージのコンパイラ警告と Starlark デバッグ出力のみを出力します。すべてのフィルタリングを無効にするには、 --auto_output_filter=none を設定します。

--sandbox_debug

サンドボックス エラーの詳細を確認できます。Bazel がデフォルトでビルドをサンドボックス化する理由と、サンドボックス化される内容の詳細については、サンドボックス化に関するドキュメントをご覧ください。

--subcommands (-s)

ビルド中に Bazel が実行するすべてのコマンドの包括的なリストを表示します。成功したか失敗したかに関係なく、すべてのコマンドが表示されます。

起動

フラグ 説明

--bazelrc

.bazelrc ファイルでデフォルトの Bazel オプションを指定できます。複数の .bazelrc ファイルが存在する場合は、--bazelrc=<path to the .bazelrc file> を追加して、使用する .bazelrc ファイルを選択できます。

--host_jvm_args

Bazel サーバーが使用する RAM の量を制限します。たとえば、次の例では Bazel ヒープサイズを 3 GB に制限しています。
--host_jvm_args=-Xmx3g

--output_base

Bazel の出力ツリーを制御します。Bazel は、ログなどのビルド出力をソースツリー自体に保存しません。代わりに、この目的のために個別の出力ツリーを使用します。

Bazel テスト

次のフラグは Bazel テストに関連しています。

フラグ 説明

--java_debug

Java テストが実行される前にデバッガ接続を待機するようにします。

--runs_per_test

テストを実行する回数。たとえば、テストを N 回実行するには、--runs_per_test=N を追加します。これは、不安定なテストをデバッグし、修正によってテストが常に合格するかどうかを確認するのに役立ちます。

--test_output

出力モードを指定します。デフォルトでは、Bazel はテスト出力をローカル ログファイルにキャプチャします。通常、壊れたテストを反復処理するときは、--test_output=streamed を使用してテスト出力をリアルタイムで確認します。

Bazel 実行

次のフラグは Bazel の実行に関連しています。

フラグ 説明

--run_under

実行可能ファイルの呼び出し方法を変更します。たとえば、--run_under="strace -c" はデバッグによく使用されます。

ユーザー固有の bazelrc オプション

次のフラグは、ユーザー固有の .bazelrc オプションに関連しています。

フラグ 説明

--disk_cache

Bazel がアクションとアクション出力の読み取りと書き込みを行うことができるディレクトリのパス。ディレクトリが存在しない場合は作成されます。複数のブランチまたはワークスペース間でビルド アーティファクトを共有し、コマンドに --disk_cache=<path> を追加して Bazel ビルドを高速化できます。

--jobs

実行する同時ジョブの数。これは通常、リモート ビルド クラスタがローカルのコア数よりも多くのジョブを実行するリモート実行を使用する場合にのみ必要です。

--local_resources

ローカルで実行されるアクションによる CPU または RAM の消費量を制限します。

--sandbox_base

サンドボックスがこのパスの下にサンドボックス ディレクトリを作成できるようにします。デフォルトでは、Bazel はローカル アクションをサンドボックス化して実行するため、ビルドにオーバーヘッドが追加されます。

プロジェクト固有の bazelrc オプション

次のフラグは、プロジェクト固有の .bazelrc オプションに関連しています。

フラグ 説明

--flaky_test_attempts

テストが失敗した場合、指定された回数まで各テストを再試行します。これは継続的インテグレーションで特に役立ちます。合格に複数回の試行が必要なテストは、テストの概要で FLAKY とマークされます。

--remote_cache

キャッシュ エンドポイントの URI。リモート キャッシュを設定すると、Bazel ビルドを大幅に高速化できます。ローカル ディスク キャッシュと組み合わせることができます。

--remote_download_regex

--remote_download_outputs の設定に関係なく、パスがこのパターンに一致するリモートビルドの出力を強制的にダウンロードします。このフラグを繰り返すことで、複数のパターンを指定できます。

--remote_executor

リモート実行エンドポイントの HOST または HOST:PORT。リモート実行サービスを使用している場合は、これを渡します。多くの場合、--remote_instance_name=<name> を追加する必要があります。

--remote_instance_name

リモート実行 API で instance_name として渡す値。

--show-timestamps

指定されている場合、Bazel によって生成された各メッセージに、メッセージが表示された時刻を示すタイムスタンプが追加されます。これは、CI システムでどのステップにどのくらいの時間がかかったかをすばやく把握するのに役立ちます。

--spawn_strategy

リモート実行でも、一部のビルド アクションをローカルで実行する方が高速になる場合があります。これは、ビルド クラスタの容量、ネットワーク速度、ネットワーク遅延などの要因によって異なります。