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=<path to
the .bazelrc file>を追加して、使用する .bazelrc ファイルを選択できます。 | 
| 
 | Bazel サーバーが使用する RAM の量を制限します。たとえば、次のコマンドでは Bazel ヒープサイズを 3 GB に制限します。 --host_jvm_args=-Xmx3g | 
| 
 | Bazel の出力ツリーを制御します。Bazel は、ログなどのビルド出力をソースツリー自体に保存しません。代わりに、この目的に別の出力ツリーを使用します。 | 
Bazel テスト
次のフラグは Bazel テストに関連しています。
| フラグ | 説明 | 
|---|---|
| 
 | Java テストが実行される前に、デバッガの接続を待機します。 | 
| 
 | テストを実行する回数。たとえば、テストを N 回実行するには、 --runs_per_test=Nを追加します。これは、不安定なテストをデバッグし、修正によってテストが常に合格するかどうかを確認するのに役立ちます。 | 
| 
 | 出力モードを指定します。デフォルトでは、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 によって生成された各メッセージに、メッセージが表示された時間を示すタイムスタンプが追加されます。これは、どのステップにどのくらいの時間がかかったかをすばやく把握するのに役立ちます。 | 
| 
 | リモート実行でも、一部のビルド操作をローカルで実行するほうが速い場合があります。これは、ビルドクラスタの容量、ネットワーク速度、ネットワーク遅延などの要因によって異なります。 |