Bazel, Make, Maven ve Gradle'e benzer bir açık kaynak derleme ve test aracıdır. Kullanıcıların okuyabileceği, yüksek düzey bir derleme dili kullanır. Bazel, birden fazla dilde projeleri destekler ve birden fazla platform için çıkışlar oluşturur. Bazel, birden fazla depodaki büyük kod tabanlarını ve çok sayıda kullanıcıyı destekler.
Avantajları
Bazel aşağıdaki avantajları sunar:
Yüksek düzey derleme dili. Bazel, projenizin derleme özelliklerini yüksek bir anlamsal düzeyde tanımlamak için soyut ve kullanıcıların okuyabileceği bir dil kullanır. Diğer araçların aksine Bazel, kitaplıklar, ikili dosyalar, komut dosyaları ve veri kümeleri kavramlarını kullanarak sizi derleyiciler ve bağlayıcılar gibi araçlara ayrı ayrı çağrı yazmanın karmaşıklığından korur.
Bazel hızlı ve güvenilirdir. Bazel, daha önce yapılan tüm çalışmaları önbelleğe alır ve hem dosya içeriğindeki hem de derleme komutlarındaki değişiklikleri izler. Bu sayede Bazel, ne zaman bir öğenin yeniden oluşturulması gerektiğini bilir ve yalnızca o öğeyi yeniden oluşturur. Derlemelerinizi daha da hızlandırmak için projenizi son derece paralel ve artımlı bir şekilde derlenecek şekilde ayarlayabilirsiniz.
Bazel çok platformlu bir platformdur. Bazel; Linux, macOS ve Windows'ta çalışır. Bazel, aynı projeden masaüstü, sunucu ve mobil dahil olmak üzere birden fazla platform için ikili dosyalar ve dağıtılabilir paketler oluşturabilir.
Bazel ölçekleri. Bazel, 100.000'den fazla kaynak dosyası içeren derlemeleri işlerken çevikliğini korur. Birden çok depo ve on binlerce kullanıcı tabanı ile çalışır.
Bazel genişletilebilirdir. Birçok dil desteklenir ve Bazel'i başka bir dili veya çerçeveyi destekleyecek şekilde genişletebilirsiniz.
Bazel'i kullanma
Bazel ile bir proje oluşturmak veya test etmek için genellikle aşağıdakileri yaparsınız:
Bazel'i kurun. Bazel'i indirip yükleyin.
Bazel'in derleme girişlerini ve
BUILD
dosyalarını aradığı ve derleme çıkışlarını sakladığı bir dizin olan proje çalışma alanı oluşturun.Bazel'e neyi ve nasıl oluşturacağını söyleyen bir
BUILD
dosyası yazın.BUILD
dosyanızı, alana özgü bir dil olan Starlark'ı kullanarak derleme hedeflerini bildirerek yazarsınız. (Örneği burada bulabilirsiniz.)Derleme hedefi, Bazel'in derleyeceği bir giriş yapıları grubunu ve bu yapıların bağımlılarını, Bazel'in derleme işlemi için kullanacağı derleme kuralını ve derleme kuralını yapılandıran seçenekleri belirtir.
Derleme kuralı, Bazel'in kullanacağı derleyiciler ve bağlayıcılar gibi derleme araçlarını ve bunların yapılandırmalarını belirtir. Bazel, desteklenen platformlarda desteklenen dillerdeki en yaygın yapı türüne dair çeşitli derleme kurallarıyla birlikte gönderilir.
Komut satırından Bazel'i çalıştırın. Bazel, çıktılarınızı çalışma alanına yerleştirir.
Bazel'i, derlemenin yanı sıra testler çalıştırmak ve kodunuzdaki bağımlılıkları izlemek için derlemeyi sorgulamak amacıyla da kullanabilirsiniz.
Bazel derleme süreci
Bazel, derleme veya test çalıştırırken şunları yapar:
Hedefle alakalı
BUILD
dosyalarını yükler.Girişleri ve bağımlılıkları analiz eder, belirtilen derleme kurallarını uygular ve bir işlem grafiği oluşturur.
Nihai derleme çıkışları oluşturulana kadar girişlerdeki derleme işlemlerini yürütür.
Önceki tüm derleme çalışmaları önbelleğe alındığından Bazel, önbelleğe alınan yapıları tanımlayıp yeniden kullanabilir ve yalnızca değişenleri yeniden derleyebilir veya yeniden test edebilir. Doğruluğu daha da sağlamak için Bazel'i, korumalı alan kullanarak derlemeleri ve testleri hermetik şekilde çalıştıracak şekilde ayarlayabilirsiniz. Böylece, sapmaları en aza indirip tekrarlanabilirliği en üst düzeye çıkarabilirsiniz.
İşlem grafiği
İşlem grafiği, derleme yapılarını, aralarındaki ilişkileri ve Bazel'in gerçekleştireceği derleme işlemlerini temsil eder. Bu grafik sayesinde Bazel, dosya içeriğindeki değişikliklerin yanı sıra derleme veya test komutları gibi işlemlerdeki değişiklikleri izleyebilir ve daha önce hangi derleme çalışmalarının yapıldığını bilebilir. Bu grafik, kodunuzdaki bağımlılıklarını kolayca izlemenize de olanak tanır.
Başlangıç eğitimleri
Bazel'i kullanmaya başlamak için Başlangıç bölümüne bakın veya doğrudan Bazel eğitimlerine gidin: