Bazel'a giriş

Sorun bildirme Kaynağı görüntüleme Nightly · 7.4 . 7.3 · 7,2 · 7,1 · 7.0 · 6,5

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 projeler 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'in sunduğu avantajlar şunlardır:

  • Üst düzey derleme dili. Bazel soyut, okunabilir bir projenizin yapı özelliklerini genel hatlarıyla açıklamak için anlamsal seviyede. Diğer araçların aksine Bazel, içeriklerinde kavramlar sizi bu büyük sistemden korurken bir yandan da kütüphaneler, ikili programlar, derleyiciler ve uygulamalar gibi araçlara tek tek çağrılar yazmanın karmaşıklığı bağlayıcılar.

  • 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 birden fazla platformdur. Bazel; Linux, macOS ve Windows'ta çalışır. Bazel birden fazla platform için ikili programlar ve dağıtılabilir paketler derleyebilir: aynı proje üzerinde çalışan, masaüstü, sunucu ve mobil cihazlar.

  • Bazel ölçekleri. Bazel, 100 binden fazla parçayla derlemeleri yönetirken çevikliğini koruyor kaynak dosyalar. Onlarca depo ve kullanıcı tabanıyla çalışır binlerce sonuçtan oluşur.

  • Bazel genişletilebilir. Birçok dil, bir dil desteği sunar ve Bazel'i başka bir dili veya bahsedeceğim.

Bazel'i kullanma

Bazel ile bir proje oluşturmak veya test etmek için genellikle aşağıdakileri yaparsınız:

  1. Bazel'i kurun. Bazel'i indirip yükleyin.

  2. 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.

  3. Bazel'a neyin oluşturulması ve nasıl hazırlanması gerektiğini bildiren BUILD dosyası yazın inceleyeceğiz.

    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'ın kullanacağı derleyiciler ve ve yapılandırmalarını içerir. Bazel birçok yapı kuralı içeriyor desteklenen dillerdeki en yaygın yapı türlerini kapsayan destekler.

  4. 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, bir derleme veya test çalıştırırken aşağıdakileri yapar:

  1. Hedefle alakalı BUILD dosyasını yükler.

  2. Girişleri ve girdilerini dependencies, belirtilen derlemeyi uygular belirler ve bir eylem oluşturur grafiğe dönüştürülebilir.

  3. 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 indirebilir ve 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. Grafik ayrıca şunları yapmanıza olanak tanır: kodunuzdaki bağımlılıkları kolayca izleyin.

Başlangıç eğiticileri

Bazel'ı kullanmaya başlamak için Başlarken sayfasına göz atın veya doğrudan Bazel eğiticilerine gönderebilirsiniz: