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 を追加します。これは、
フレーキー テストをデバッグし、修正によってテストが一貫して合格するようになるかを確認するのに役立ちます。
|
|
このフラグは、変更によってテストが失敗した場合など
、単一のテストメソッドを反復処理する場合に特に便利です。テストスイート内のすべてのテストメソッドを再実行するのではなく、失敗した特定のテストにのみ焦点を当てることができます。これにより、フィードバックが迅速になり、デバッグを効率的に行うことができます
。このフラグは、リアルタイムのテスト出力のために
--test_output=streamedと組み合わせて使用されることがよくあります。
|
|
出力モードを指定します。デフォルトでは、Bazel はテスト出力を
ローカル ログファイルにキャプチャします。失敗したテストを反復処理する場合は、通常
--test_output=streamedを使用して、テスト出力を
リアルタイムで確認します。
|
Bazel の実行
次のフラグは Bazel の実行に関連しています。
| フラグ | 説明 |
|---|---|
|
実行可能ファイルの呼び出し方法を変更します。たとえば、--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 システムで どのステップにどれくらいの時間がかかったかをすばやく把握するのに役立ちます。 |
|
リモート実行でも、一部のビルド アクションをローカルで実行する方が高速になる場合があります。これは、ビルド クラスタの容量、ネットワーク速度、ネットワーク レイテンシなどの要因によって異なります。 |