Bazel'a giriş

Sorun bildirin Kaynağı göster

Bazel; Make, Maven ve Gradle'a benzer açık kaynaklı bir derleme ve test aracıdır. Kullanıcıların okuyabileceği, üst düzey bir derleme dili kullanır. Bazel, birden fazla dildeki projeleri destekler ve birden fazla platform için çıkışlar derler. Bazel, birden fazla depoda 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, projenizin derleme özelliklerini anlamsal bir düzeyde açıklamak için soyut, insan tarafından okunabilen bir dil kullanır. Diğer araçların aksine Bazel; kitaplık, ikili program, komut dosyası ve veri kümesi kavramları üzerinde çalışarak sizi derleyiciler ve bağlayıcılar gibi araçlara ayrı ayrı çağrılar yazmanın karmaşıklığından korur.

  • Bazel hızlı ve güvenilirdir. Bazel, önceden yapılmış tüm işleri önbelleğe alır ve hem dosya içeriği hem de derleme komutlarında yapılan değişiklikleri izler. Böylece Bazel bir şeyin ne zaman yeniden yapılması gerektiğini bilir ve onu yeniden inşa eder. Derlemelerinizi daha da hızlandırmak için projenizi son derece paralel ve artımlı bir şekilde inşa edecek şekilde ayarlayabilirsiniz.

  • Bazel birden fazla platformdur. Bazel; Linux, macOS ve Windows'da çalışır. Bazel aynı projeden masaüstü, sunucu ve mobil dahil olmak üzere birden fazla platform için ikili programlar ve dağıtılabilir paketler oluşturabilir.

  • Bazel ölçekleri. Bazel, 100 binden fazla kaynak dosyayla derlemeleri işlerken çevikliğini korur. On binlerce depoda ve kullanıcı tabanında çalışır.

  • Bazel genişletilebilir. Birçok dil desteklenir ve Bazel'i diğer herhangi bir dili veya çerçeveyi destekleyecek şekilde genişletebilirsiniz.

Bazel'ı kullanma

Bazel ile proje oluşturmak veya test etmek için genellikle aşağıdakileri yapmanız gerekir:

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

  2. Proje çalışma alanı oluşturun. Bu dizin, Bazel'ın derleme girişleri ile BUILD dosyalarını aradığı ve derleme çıkışlarını depoladığı bir dizindir.

  3. Bazel'a neyi derleyeceğini ve nasıl derleneceğini bildiren BUILD dosyası yazın.

    BUILD dosyanızı, alana özgü bir dil olan Starlark'ı kullanarak derleme hedefleri tanımlayarak yazarsınız. (Buradaki örneğe bakın.)

    Derleme hedefi, Bazel'in oluşturacağı bir dizi giriş yapısını ve bunların bağımlılıklarını, Bazel'in derlemek için kullanacağı derleme kuralını ve derleme kuralını yapılandıran seçenekleri belirtir.

    Derleme kuralı, Bazel'ın kullanacağı derleme araçlarını (ör. derleyiciler ve bağlayıcılar) ve yapılandırmaları belirtir. Bazel, desteklenen platformlarda desteklenen dillerdeki en yaygın yapı türlerini kapsayan bir dizi derleme kuralıyla birlikte sunulur.

  4. Komut satırından Bazel'i çalıştırın. Bazel, çıkışlarınızı çalışma alanına yerleştirir.

Bazel'ı derlemenin yanı sıra testler çalıştırmak ve kodunuzdaki bağımlılıkları izlemek amacıyla derlemeyi sorgulamak için de kullanabilirsiniz.

Bazel derleme işlemi

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 bağımlılıklarını analiz eder, belirtilen derleme kurallarını uygular ve bir eylem grafiği oluşturur.

  3. Nihai derleme çıkışları üretilene kadar girişlerde derleme işlemlerini yürütür.

Önceki tüm derleme işleri önbelleğe alındığından Bazel, önbelleğe alınan yapıları tanımlayıp yeniden kullanabilir ve yalnızca değişiklikleri yeniden derleyebilir ya da test edebilir. Düzeltmeyi daha da uygulamak için Bazel'i, derlemeleri ve testleri korumalı alana alarak hermetik olarak çalıştıracak şekilde ayarlayabilir, sapmayı en aza indirebilir ve yeniden üretilebilirliği en üst düzeye çıkarabilirsiniz.

İşlem grafiği

Eylem grafiği derleme yapılarını, bunlar arası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şlemlerde yapılan değişiklikleri izleyebilir ve daha önce hangi derleme işleminin yapıldığını öğrenebilir. Grafik, kodunuzdaki bağımlılıkları kolayca izlemenizi de sağlar.

Başlangıç eğitimleri

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