Introducción a Bazel

Informar un problema Ver fuente Por la noche · 7.2 · 7.1 · 7.0 · 6.5 · 6.4

Bazel es una herramienta de compilación y prueba de código abierto similar a Make, Maven y Gradle. Usa un lenguaje de compilación de alto nivel legible por humanos. Bazel admite proyectos en varios lenguajes y compila salidas para varias plataformas. Bazel admite bases de código grandes en varios repositorios y grandes cantidades de usuarios.

Beneficios

Bazel ofrece las siguientes ventajas:

  • Lenguaje de compilación de alto nivel. Bazel usa una técnica abstracta y legible por humanos lenguaje para describir las propiedades de compilación de tu proyecto en un alto a nivel semántico. A diferencia de otras herramientas, Bazel opera en función de los conceptos. de bibliotecas, objetos binarios, secuencias de comandos y conjuntos de datos, lo que te protege contra la complejidad de escribir llamadas individuales a herramientas como compiladores y vinculadores.

  • Bazel es rápido y confiable. Bazel almacena en caché todo el trabajo realizado anteriormente hace un seguimiento de los cambios en el contenido de los archivos y en los comandos de compilación. Así, Bazel sabe cuándo se debe reconstruir algo y reconstruye solo eso. A más acelerar tus compilaciones, puedes configurar tu proyecto de modo que se compile de forma incremental y paralela.

  • Bazel es multiplataforma. Bazel se ejecuta en Linux, macOS y Windows. Bazel pueden compilar objetos binarios y paquetes implementables para varias plataformas, lo que incluye computadora de escritorio, servidor y dispositivo móvil, del mismo proyecto.

  • Bazels escalas. Bazel mantiene la agilidad mientras maneja compilaciones con más de 100,000. archivos fuente. Funciona con varios repositorios y bases de usuarios en decenas de miles de personas.

  • Bazel es extensible. Muchos idiomas son y puedes extender Bazel para que admita cualquier otro lenguaje o en un framework de nube.

Usa Bazel

Para compilar o probar un proyecto con Bazel, por lo general, debes hacer lo siguiente:

  1. Configura Bazel. Descarga e instala Bazel.

  2. Configura un espacio de trabajo para el proyecto, que es un en el que Bazel busca entradas de compilación y archivos BUILD, y dónde se encuentra almacena resultados de compilación.

  3. Escribe un archivo BUILD, que le dice a Bazel qué compilar y cómo hacerlo. construirlo.

    Para escribir el archivo BUILD, declara destinos de compilación con Starlark, un lenguaje específico del dominio. (Ver ejemplo aquí).

    Un destino de compilación especifica un conjunto de artefactos de entrada que Bazel compilará y, además, sus dependencias, la regla de compilación que Bazel usará para compilarla y las opciones que configuran la regla de compilación.

    Las reglas de compilación especifican las herramientas de compilación que usará Bazel, como los compiladores y vinculadores y sus configuraciones. Bazel se envía con una serie de reglas de compilación. que cubren los tipos de artefactos más comunes en los idiomas admitidos en plataformas compatibles.

  4. Ejecuta Bazel desde la línea de comandos. Bazel coloca los resultados en el espacio de trabajo.

Además de compilar, también puedes usar Bazel para ejecutar tests y consulta la compilación hacer un seguimiento de las dependencias en tu código.

Proceso de compilación de Bazel

Cuando se ejecuta una compilación o una prueba, Bazel hace lo siguiente:

  1. Carga los archivos BUILD relevantes para el destino.

  2. Analiza las entradas y sus dependencias, aplica la compilación especificada y produce una acción gráfico.

  3. Ejecuta las acciones de compilación en las entradas hasta los resultados de la compilación final. de producción.

Debido a que todo el trabajo de compilación anterior se almacena en caché, Bazel puede identificar y reutilizar los artefactos y solo volver a compilar o probar lo que cambió. Para reforzar aún más corrección, puedes configurar Bazel para ejecutar compilaciones y pruebas de manera hermética a través de la zona de pruebas, lo que minimiza el sesgo y maximizar la reproducibilidad.

Gráfico de acción

El gráfico de acciones representa los artefactos de compilación, las relaciones entre ellos, y las acciones de compilación que realizará Bazel. Gracias a este gráfico, Bazel puede Realiza un seguimiento de los cambios en el contenido del archivo y los cambios en las acciones, como los comandos de compilación o prueba, y para saber qué trabajo de compilación se realizó anteriormente. El gráfico también te permite hacer un seguimiento de las dependencias en tu código con facilidad.

Instructivos de introducción

Para comenzar a usar Bazel, consulta Primeros pasos o ve a directamente a los instructivos de Bazel: