Bazel のコマンドライン フラグの長いリストを扱うのは簡単ではありません。このページでは、知っておくべき最も重要なフラグについて説明します。
便利な汎用オプション
次のフラグは、コマンドラインで明示的に設定することを目的としています。
| フラグ | 説明 |
|---|---|
|
.bazelrc ファイルのフラグを、デバッグ用やリリース ビルド用など、構成ごとに整理できます。--config=<group> を使用して、追加の構成グループを選択できます。 |
|
Bazel にビルドとテスト実行を可能な限り継続するよう指示します。デフォルトの場合、Bazel はすぐに失敗します。 |
|
リモート実行またはキャッシュ保存(ディスクとリモートの両方)を使用する場合に、次のように、すべての(中間)ビルド アーティファクトをダウンロードするよう Bazel に通知できます。--remote_download_outputs=all |
|
ビルド情報(ユーザー、タイムスタンプ)をバイナリに追加します。 |
ビルドとテストの問題を明らかにする
次のフラグは、Bazel のビルドとテストでエラーをより深く理解するのに役立ちます。
| フラグ | 説明 |
|---|---|
|
ユーザー定義、マシン定義、プロジェクト定義の .bazelrc ファイルで暗黙的に設定されているフラグを表示します。 |
|
デフォルトでは、Bazel はログスパムを防ぐため、コマンドラインでリクエストされたパッケージとサブパッケージのコンパイラ警告と Starlark デバッグ出力のみを出力します。すべてのフィルタリングを無効にするには、
--auto_output_filter=none.
を設定します。 |
|
サンドボックス エラーの詳細を確認できます。Bazel がデフォルトでビルドをサンドボックス化する理由と、何をサンドボックス化するかについて詳しくは、サンドボックス化に関するドキュメントをご覧ください。 |
|
ビルド中に Bazel が実行するすべてのコマンドの包括的なリストを、成功したか失敗したかに関係なく表示します。 |
スタートアップ
| フラグ | 説明 |
|---|---|
|
デフォルトの Bazel オプションは .bazelrc ファイルで指定できます。複数の
.bazelrcファイルが存在する場合は、使用する
.bazelrcファイルを選択できます。--bazelrc=<path to
the .bazelrc file>
|
|
Bazel サーバーが使用する RAM の量を制限します。
たとえば、次の例では Bazel ヒープサイズを 3GB に制限しています。--host_jvm_args=-Xmx3g |
|
Bazel の出力ツリーを制御します。Bazel は、ログなどのビルド出力をソースツリー自体に保存しません。代わりに、個別の出力ツリーに保存します。 |
Bazel テスト
次のフラグは Bazel テストに関連しています。
| フラグ | 説明 |
|---|---|
|
Java テストの実行開始が、デバッガ接続を待機するようにします。 |
|
テストを実行する回数。たとえば、テストを N 回実行するには、--runs_per_test=N を追加します。これは、フレーキー テストをデバッグし、修正によってテストが一貫して合格するようになるかを確認するのに役立ちます。 |
|
出力モードを指定します。デフォルトでは、Bazel はテスト出力をローカル ログファイルにキャプチャします。失敗したテストを反復処理する場合は、通常、
--test_output=streamedを使用してテスト出力を
リアルタイムで確認します。
|
Bazel run
次のフラグは Bazel run に関連しています。
| フラグ | 説明 |
|---|---|
|
実行可能ファイルの呼び出し方法を変更します。たとえば、--run_under="strace -c" は
デバッグによく使用されます。 |
ユーザー固有の bazelrc オプション
次のフラグは、ユーザー固有の .bazelrc オプションに関連しています。
| フラグ | 説明 |
|---|---|
|
Bazel がアクションとアクション出力の読み取りと書き込みを行うことができるディレクトリのパス。ディレクトリが存在しない場合は作成されます。コマンドに --disk_cache=<path> を追加することで、複数のブランチまたはワークスペース間でビルド アーティファクトを共有し、Bazel ビルドを高速化できます。 |
|
実行する同時ジョブの数。 これは通常、リモート実行を使用する場合にのみ必要です。リモート実行では、リモート ビルド クラスタがローカルのコア数よりも多くのジョブを実行します。 |
|
ローカルで実行されるアクションで使用される CPU または RAM の量を制限します。 |
|
サンドボックスで、このパスの下にサンドボックス ディレクトリを作成できます。デフォルトでは、Bazel はローカル アクションをサンドボックス化して実行するため、ビルドにオーバーヘッドが発生します。 |
プロジェクト固有の bazelrc オプション
次のフラグは、プロジェクト固有の .bazelrc オプションに関連しています。
| フラグ | 説明 |
|---|---|
|
テストが失敗した場合、指定された回数まで各テストを再試行します。これは継続的インテグレーションで特に役立ちます。合格するまでに複数回の実行が必要なテストは、テストの概要で FLAKY とマークされます。 |
|
キャッシュ保存エンドポイントの URI。リモート キャッシュ保存の設定は、Bazel ビルドの高速化に役立ちます。ローカル ディスク キャッシュと組み合わせることができます。 |
|
--remote_download_outputs の設定に関係なく、パスがこのパターンに一致するリモート ビルド出力を強制的にダウンロードします。このフラグを繰り返すことで、複数のパターンを指定できます。
|
|
HOST または HOST:PORT のリモート実行エンドポイント。リモート実行サービスを使用する場合は、これを渡します。多くの場合、
--remote_instance_name=<name> を追加する必要があります。
|
|
リモート実行 API で instance_name として渡す値。
|
|
指定すると、Bazel によって生成された各メッセージに、メッセージが表示された時刻を示すタイムスタンプが追加されます。これは、CI システムでどのステップにどれくらいの時間がかかったかをすばやく把握するのに役立ちます。 |
|
リモート実行でも、一部のビルド アクションをローカルで実行する方が高速になる場合があります。これは、ビルド クラスタの容量、ネットワーク速度、ネットワーク レイテンシなどの要因によって異なります。 |