Einführung in Bazel

Bazel ist ein Open-Source-Tool zum Erstellen und Testen, das ähnlich wie Make, Maven und Gradle funktioniert. Sie verwendet eine für Menschen lesbare, allgemeine Build-Sprache. Bazel unterstützt Projekte in mehreren Sprachen und erstellt Ausgaben für mehrere Plattformen. Bazel unterstützt große Codebasen für mehrere Repositories und eine große Anzahl von Nutzern.

Vorteile

Bazel bietet folgende Vorteile:

  • Allgemeine Build-Sprache. Bazel verwendet eine abstrakte, für Menschen lesbare Sprache, um die Build-Attribute Ihres Projekts auf einer hohen semantischen Ebene zu beschreiben. Anders als andere Tools wird mit BazelKonzepte von Bibliotheken, Binärdateien, Skripts und Datensätzen. Dadurch wird verhindert, dass Sie einzelne Aufrufe an Tools wie Compiler und Linker schreiben können.

  • Bazel ist schnell und zuverlässig. Bazel speichert alle zuvor erledigten Aufgaben im Cache und verfolgt Änderungen an Dateiinhalten und Build-Befehlen. So weiß Bazel, wann etwas neu erstellt werden muss, und erstellt nur diesen. Wenn Sie die Erstellung Ihres Projekts weiter beschleunigen möchten, können Sie Ihr Projekt so einrichten, dass es sehr parallel und inkrementell erstellt wird.

  • Bazel ermöglicht mehrere Plattformen. Bazel kann unter Linux, macOS und Windows ausgeführt werden. Bazel kann Binärprogramme und bereitstellbare Pakete für mehrere Plattformen, einschließlich Computer, Server und Mobilgeräten, aus demselben Projekt erstellen.

  • Bazel skaliert. Bazel sorgt mit über 100.000 Quelldateien für Flexibilität. Es funktioniert mit mehreren Repositories und Nutzerbasis in Zehntausenden.

  • Bazel ist erweiterbar. Es werden viele Sprachen unterstützt und Sie können Bazel erweitern, um andere Sprachen oder Frameworks zu unterstützen.

Bazel verwenden

So erstellen oder testen Sie ein Projekt mit Bazel:

  1. Richten Sie Bazel ein. Laden Sie Bazel herunter und installieren Sie es.

  2. Richten Sie einen Arbeitsbereich für das Projekt ein. Dies ist ein Verzeichnis, in dem Bazel nach Build-Eingaben und BUILD-Dateien sucht und in dem Build-Ausgaben gespeichert werden.

  3. Schreiben Sie eine BUILD-Datei, die Bazel mitteilt, was erstellt werden soll und wie.

    Zum Schreiben der Datei BUILD deklarieren Sie Build-Ziele mit Starlark, einer domainspezifischen Sprache. (Beispiel finden Sie hier).

    Ein Build-Ziel gibt eine Reihe von Eingabeartefakten an, die von Bazel erstellt werden, sowie deren Abhängigkeiten, die Build-Regel, die Bazel zum Erstellen verwendet, und Optionen zum Konfigurieren der Build-Regel.

    Eine Build-Regel gibt die Build-Tools an, die von Bazel verwendet werden, z. B. Compiler und Verknüpfungen, sowie deren Konfigurationen. Im Lieferumfang von Bazel sind mehrere Build-Regeln enthalten, die die gängigsten Artefakttypen in den unterstützten Sprachen auf den unterstützten Plattformen abdecken.

  4. Führen Sie Bazel über die Befehlszeile aus. Bazel platziert Ihre Ausgaben im Arbeitsbereich.

Neben der Erstellung können Sie mit Bazel auch Tests ausführen und den Build abfragen, um Abhängigkeiten in Ihrem Code zu verfolgen.

Bazel-Build-Prozess

Beim Ausführen eines Builds oder Tests führt Bazel Folgendes aus:

  1. Die für das Ziel relevanten BUILD-Dateien werden geladen.

  2. Analysiert die Eingaben und ihre Abhängigkeiten, wendet die angegebenen Build-Regeln an und erstellt eine Aktionsgrafik.

  3. Führen die Build-Aktionen für die Eingaben aus, bis die endgültigen Build-Ausgaben erzeugt sind.

Da alle vorherigen Build-Vorgänge im Cache gespeichert werden, kann Bazel im Cache gespeicherte Artefakte identifizieren und wiederverwenden sowie nur Änderungen neu erstellen oder testen. Um die Richtigkeit weiter zu erzwingen, können Sie Bazel so einrichten, dass Builds und Tests hermetisch durch Sandboxing ausgeführt werden, durch Verzerrung minimiert und Reproduzierbarkeit maximiert wird.

Aktionsgrafik

Das Aktionsdiagramm stellt die Build-Artefakte, die Beziehungen zwischen ihnen und die Build-Aktionen dar, die von Bazel ausgeführt werden. Dank dieser Grafik kann Bazel Änderungen am Dateiinhalt sowie an Aktionen wie Build- oder Testbefehlen verfolgen und erkennen, welche Build-Arbeit zuvor ausgeführt wurde Fertig. Mit dem Diagramm können Sie außerdem ganz einfach Abhängigkeiten verfolgen in Ihrem Code.

Anleitungen für den Einstieg

Informationen zu den ersten Schritten mit Bazel finden Sie in den Kurzanleitungen. Alternativ können Sie direkt zu den Bazel-Anleitungen gehen: