Hoja de referencia de la bandera de Bazel

Informar un problema Ver fuente Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Navegar por la extensa lista de marcas de línea de comandos de Bazel puede ser un desafío. En esta página, se explican los parámetros más importantes que debes conocer.

Opciones generales útiles

Las siguientes marcas deben establecerse de forma explícita en la línea de comandos.

Marcar Descripción

--config

Puedes organizar las marcas en un archivo .bazelrc en configuraciones, como las de compilaciones de depuración o de lanzamiento. Se pueden seleccionar grupos de configuración adicionales con --config=<group>.

--keep_going

Bazel debe intentar continuar con la ejecución de la compilación y las pruebas en la medida de lo posible. De forma predeterminada, Bazel falla de inmediato.

--remote_download_outputs

Cuando usas la ejecución o el almacenamiento en caché remotos (tanto en disco como remotos), puedes indicarle a Bazel que deseas descargar todos los artefactos de compilación (intermedios) de la siguiente manera:
--remote_download_outputs=all
De forma predeterminada, Bazel solo descarga artefactos de nivel superior, como el archivo binario final, y artefactos intermedios que son necesarios para las acciones locales.

--stamp

Agrega información de compilación (usuario, marca de tiempo) a los archivos binarios.

Descubre problemas de compilación y prueba

Las siguientes marcas pueden ayudarte a comprender mejor los errores de compilación o prueba de Bazel.

Marcar Descripción

--announce_rc

Muestra qué marcas se establecen de forma implícita a través de archivos .bazelrc definidos por el usuario, definidos por la máquina o definidos por el proyecto.

--auto_output_filter

De forma predeterminada, Bazel intenta evitar el spam en los registros y solo imprime las advertencias del compilador y la salida de depuración de Starlark para los paquetes y subpaquetes solicitados en la línea de comandos. Para inhabilitar todos los filtros, establece --auto_output_filter=none.

--sandbox_debug

Te permite explorar en detalle los errores de la zona de pruebas. Para obtener detalles sobre por qué Bazel ejecuta las compilaciones en zonas de pruebas de forma predeterminada y qué se ejecuta en zonas de pruebas, consulta nuestra documentación sobre zonas de pruebas.

--subcommands (-s)

Muestra una lista completa de todos los comandos que ejecuta Bazel durante una compilación, independientemente de si se realiza correctamente o no.

Inicio

Marcar Descripción

--bazelrc

Puedes especificar opciones predeterminadas de Bazel en archivos .bazelrc. Si existen varios archivos .bazelrc, puedes seleccionar cuál se usará agregando --bazelrc=<path to the .bazelrc file>.

--host_jvm_args

Limita la cantidad de RAM que usa el servidor de Bazel. Por ejemplo, el siguiente comando limita el tamaño del montón de Bazel a 3 GB:
--host_jvm_args=-Xmx3g

--output_base

Controla el árbol de salida de Bazel. Bazel no almacena los resultados de la compilación, incluidos los registros, dentro del árbol fuente. En cambio, usa un árbol de salida distinto para este propósito.

Pruebas de Bazel

Las siguientes marcas están relacionadas con la prueba de Bazel

Marcar Descripción

--java_debug

Hace que las pruebas de Java esperen una conexión del depurador antes de ejecutarse.

--runs_per_test

Cantidad de veces que se ejecutan las pruebas. Por ejemplo, para ejecutar pruebas N veces, agrega --runs_per_test=N. Esto puede ser útil para depurar pruebas no confiables y ver si una corrección hace que una prueba se apruebe de forma coherente.

--test_output

Especifica el modo de salida. De forma predeterminada, Bazel captura el resultado de las pruebas en archivos de registro locales. Cuando iteras en una prueba que no funciona, por lo general, te conviene usar --test_output=streamed para ver el resultado de la prueba en tiempo real.

Ejecución de Bazel

Las siguientes marcas se relacionan con la ejecución de Bazel.

Marcar Descripción

--run_under

Cambia la forma en que se invocan los ejecutables. Por ejemplo, --run_under="strace -c" se usa comúnmente para la depuración.

Opciones de bazelrc específicas del usuario

Las siguientes marcas se relacionan con las opciones de .bazelrc específicas del usuario.

Marcar Descripción

--disk_cache

Es una ruta de acceso a un directorio en el que Bazel puede leer y escribir acciones y resultados de acciones. Si el directorio no existe, se creará. Puedes compartir artefactos de compilación entre varias ramas o espacios de trabajo y acelerar las compilaciones de Bazel agregando --disk_cache=<path> a tu comando.

--jobs

Es la cantidad de trabajos simultáneos que se ejecutarán. Por lo general, solo se requiere cuando se usa la ejecución remota, en la que un clúster de compilación remota ejecuta más trabajos de los que tienes núcleos de forma local.

--local_resources

Limita la cantidad de CPU o RAM que consumen las acciones que se ejecutan de forma local.

--sandbox_base

Permite que la zona de pruebas cree sus directorios debajo de esta ruta. De forma predeterminada, Bazel ejecuta acciones locales en zona de pruebas, lo que agrega cierta sobrecarga a la compilación.

Opciones de bazelrc específicas del proyecto

Las siguientes marcas se relacionan con las opciones de .bazelrc específicas del proyecto.

Marcar Descripción

--flaky_test_attempts

Reintenta cada prueba hasta la cantidad especificada de veces en caso de que falle alguna. Esto es especialmente útil en la integración continua. Las pruebas que requieren más de un intento para aprobarse se marcan como INESTABLES en el resumen de la prueba.

--remote_cache

Es el URI de un extremo de almacenamiento en caché. Configurar el almacenamiento en caché remoto puede ser una excelente manera de acelerar las compilaciones de Bazel. Se puede combinar con una caché de disco local.

--remote_download_regex

Fuerza la descarga de los resultados de compilación remota cuya ruta coincida con este patrón, independientemente del parámetro de configuración --remote_download_outputs. Se pueden especificar varios patrones repitiendo esta marca.

--remote_executor

HOST o HOST:PORT de un extremo de ejecución remota. Pasa este argumento si usas un servicio de ejecución remota. A menudo, deberás agregar --remote_instance_name=<name>.

--remote_instance_name

Es el valor que se pasará como instance_name en la API de ejecución remota.

--show-timestamps

Si se especifica, se agrega una marca de tiempo a cada mensaje generado por Bazel que indica la hora en la que se mostró el mensaje. Esto es útil en los sistemas de CI para comprender rápidamente qué paso tardó cuánto tiempo.

--spawn_strategy

Incluso con la ejecución remota, ejecutar algunas acciones de compilación de forma local puede ser más rápido. Esto depende de factores como la capacidad del clúster de compilación, la velocidad de la red y los retrasos de la red.