Bazel'a giriş

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, birçok dildeki projeleri destekler ve birden çok platform için çıktılar oluşturur. Bazel, birden fazla depoda geniş kod tabanlarını ve çok sayıda kullanıcıyı destekler.

Avantajları

Bazel aşağıdaki avantajları sunar:

  • Üst düzey derleme dili. Bazel, projenizin derleme özelliklerini yüksek anlamsal düzeyde açıklamak için insanların okuyabileceği soyut bir dil kullanır. Diğer araçların aksine Bazel; kitaplık, ikili programlar, komut dosyaları ve veri kümeleri 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üvenilir. Bazel daha önce yapılan tüm işleri önbelleğe alır ve hem dosya içeriğinde hem de derleme komutlarında yapılan değişiklikleri izler. Bu sayede Bazel bir şeyin ne zaman yeniden yapılması gerektiğini bilir ve yalnızca onu yeniden inşa eder. Derlemelerinizi daha da hızlandırmak için projenizi son derece paralel ve artımlı bir şekilde derlenecek şekilde oluşturabilirsiniz.

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

  • Bazel ölçeklenir. Bazel, 100 binden fazla kaynak dosyasıyla derlemeleri işlerken çevikliği korur. Birden çok depo ve on binlerce kullanıcı tabanıyla çalışır.

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

Bazel kullanma

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

  1. Bazel'ı kurun. Bazel'i indirin ve yükleyin.

  2. Bir proje çalışma alanı oluşturun. Bu, Bazel'in derleme girdileri ve BUILD dosyaları aradığı ve derleme çıktılarını depoladığı bir dizindir.

  3. Bir BUILD dosyası yazıp, Bazel'a neyin oluşturulacağını ve nasıl hazırlanacağını açıklayın.

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

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

    Derleme kuralı, Bazel'ın kullanacağı derleyiciler ve bağlayıcılar gibi derleme araçlarını ve yapılandırmalarını belirtir. Bazel, desteklenen platformlarda desteklenen dillerdeki en yaygın yapı türlerini kapsayan bir dizi derleme kuralı sunar.

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

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

Bazel derleme işlemi

Bir derleme veya test çalıştırırken Bazel şunları yapar:

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

  2. Girişleri ve bunların bağımlılıklarını analiz eder, belirtilen derleme kurallarını uygular ve bir eylem grafiği oluşturur.

  3. Nihai derleme çıkışları oluşturulana kadar girişlerde derleme işlemlerini yürü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 yapılan değişiklikleri yeniden derleyebilir veya yeniden test edebilir. Düzeltmeyi daha da zorlamak için Bazel'ı, korumalı alana alma yoluyla derlemeleri ve testleri hermetik olarak çalıştıracak, çarpıklığı en aza indirecek ve çoğaltılabilirliği en üst düzeye çıkaracak şekilde ayarlayabilirsiniz.

İşlem grafiği

İşlem grafiği derleme yapılarını, aralarındaki ilişkileri ve Bazel'ın gerçekleştireceği derleme işlemlerini temsil eder. Bu grafik sayesinde Bazel, dosya içeriğinde yapılan 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şlerinin yapıldığını bilir. Bu grafik, kodunuzdaki bağımlılıkları kolayca izlemenizi de sağlar.

Başlangıç eğiticileri

Bazel'ı kullanmaya başlamak için Başlarken bölümüne bakın veya doğrudan Bazel eğiticilerine gidin: