Bazel ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π·Π°ΠΏΡΡΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΡΠ΅ΡΡΡ. Π‘Π±ΠΎΡΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Google, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΊΠΎΠ΄ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ° ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° Java, C++, Objective-C, Python, Rust, Go ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ±ΠΎΡΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android ΠΈ iOS. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΡΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΡΠ±ΠΎΡΠΊΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Blant de karakteristiske egenskapene til Bazel er den hΓΈye hastigheten, pΓ₯liteligheten og repeterbarheten til monteringsprosessen. For Γ₯ oppnΓ₯ hΓΈy byggehastighet bruker Bazel aktivt hurtigbufring og parallelliseringsteknikker for byggeprosessen. BUILD-filer mΓ₯ fullt ut definere alle avhengigheter, pΓ₯ grunnlag av hvilke beslutninger tas om Γ₯ gjenoppbygge komponenter etter at endringer er gjort (bare endrede filer gjenoppbygges) og parallellisere monteringsprosessen. VerktΓΈy sikrer ogsΓ₯ repeterbar montering, d.v.s. Resultatet av Γ₯ bygge et prosjekt pΓ₯ utviklerens maskin vil vΓ¦re helt identisk med bygget pΓ₯ tredjepartssystemer, for eksempel kontinuerlige integrasjonsservere.
I motsetning til Make og Ninja, bruker Bazel en tilnΓ¦rming pΓ₯ hΓΈyere nivΓ₯ for Γ₯ bygge sammenstillingsregler, der i stedet for Γ₯ definere bindingen av kommandoer til filene som bygges, brukes mer abstrakte ferdiglagde blokker, for eksempel "Γ₯ bygge en kjΓΈrbar fil i C++", "bygge et bibliotek i C++" eller "kjΓΈre en test for C++", samt identifisere mΓ₯l- og byggeplattformer. I BUILD-tekstfilen beskrives prosjektkomponentene som en haug med biblioteker, kjΓΈrbare filer og tester, uten detaljering pΓ₯ nivΓ₯et til individuelle filer og kompilatoranropskommandoer. Ytterligere funksjonalitet implementeres gjennom mekanismen for tilkobling av utvidelser.
Kilde: opennet.ru