A Bazel a szükséges fordítók és tesztek futtatásával építi fel a projektet. A build rendszert az alapoktól kezdve úgy tervezték, hogy optimálisan építsék fel a Google projekteket, beleértve a nagyon nagy projekteket és a több programozási nyelv kódját tartalmazó projekteket, amelyek kiterjedt tesztelést igényelnek, és több platformra készültek. Támogatja a kódok készítését és tesztelését Java, C++, Objective-C, Python, Rust, Go és sok más nyelven, valamint mobilalkalmazások készítését Androidra és iOS-re. A különböző platformokhoz és architektúrákhoz egyetlen összeállítási fájlok használata támogatott; például egy összeállítási fájl változtatás nélkül használható szerverrendszerhez és mobileszközhöz egyaránt.
A Bazel megkülönböztető jellemzői közé tartozik az összeszerelési folyamat nagy sebessége, megbízhatósága és megismételhetősége. A nagy felépítési sebesség elérése érdekében a Bazel aktívan gyorsítótárazási és párhuzamosítási technikákat használ az összeállítási folyamathoz. A BUILD fájloknak teljes mértékben meg kell határozniuk az összes függőséget, amelyek alapján döntéseket hoznak a változtatások utáni komponensek újraépítéséről (csak a megváltozott fájlok épülnek újra), és párhuzamosítják az összeállítási folyamatot. A szerszámozás biztosítja az ismételhető összeszerelést is, pl. a fejlesztő gépén egy projekt felépítésének eredménye teljesen megegyezik a harmadik féltől származó rendszerekre, például a folyamatos integrációs szerverekre történő építéssel.
A Make-től és a Nindzsától eltérően a Bazel magasabb szintű megközelítést alkalmaz az összeállítási szabályok felépítéséhez, amelyben ahelyett, hogy meghatározná a parancsok összerendelését az épülő fájlokhoz, absztraktabb, kész blokkokat használnak, mint például a „futtatható fájl létrehozása C++”, „könyvtár létrehozása C++ nyelven” vagy „teszt futtatása C++ nyelven”, valamint a cél- és építési platformok azonosítása. A BUILD szövegfájlban a projektösszetevők egy csomó könyvtárként, végrehajtható fájlként és tesztként vannak leírva, anélkül, hogy az egyes fájlok és a fordítóhívási parancsok szintjén részleteznénk. A kiegészítő funkciókat a bővítmények csatlakoztatásának mechanizmusa hajtja végre.
Forrás: opennet.ru