Bazel'e giriş

Sorun bildirin Kaynağı göster

Bazel; Make, Maven ve Gradle'a benzeyen, açık kaynaklı bir derleme ve test aracıdır. Kullanıcıların okuyabileceği, üst düzey bir derleme dili kullanılır. Bazel birden fazla dilde projeleri destekler ve birden fazla platform için çıkışlar oluşturur. Bazel, birden fazla depoda geniş kod tabanı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 somut bir düzeyde açıklamak için soyut, kullanıcılar tarafından okunabilir bir dil kullanır. Diğer araçların aksine Bazel; kitaplık, ikili program, komut dosyası ve veri kümesi kavramlarından yararlanarak sizi derleyici ve bağlayıcı gibi araçlara tek tek çağrı yapmanı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. Böylece, Bazel bir şeyin ne zaman yeniden inşa edilmesi gerektiğini bilir ve yalnızca binayı yeniden inşa eder. Derlemelerinizi daha da hızlandırmak için projenizi son derece paralel ve artımlı bir şekilde çalışacak şekilde ayarlayabilirsiniz.

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

  • Bazel ölçeği. Bazel, 100 bini aşkın kaynak dosyasıyla derlemeleri yönetirken çevikliği koruyor. Onlarca binlerce depo ve kullanıcı tabanıyla kullanılabilir.

  • Bazel genişletilebilir. Birçok dil desteklenir. Bazel'ı başka 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 yaparsınız:

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

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

  3. Bir BUILD dosyası yazın. Bu dosya, Bazel'a neyi derleyeceğini ve nasıl derleyeceğini bildirir.

    BUILD dosyanızı, alana özel bir dil olan Starlark'ı kullanarak derleme hedefleri belirterek yazarsınız. (Aşağıdaki örneğe göz atın.)

    Derleme hedefi, Bazel'ın geliştireceği bir dizi giriş yapısını, ayrıca bunların bağımlılıklarını, Bazel'ın derleme işlemini kullanacağı derleme kuralını ve derleme kuralını yapılandıran seçenekleri belirtir.

    Derleme kuralı, Bazel'ın derleyiciler ve bağlayıcılar gibi kullanacağı derleme araçlarını ve yapılandırmalarını belirtir. Bazel, desteklenen platformlardaki desteklenen dillerde en yaygın yapı türlerini kapsayan çeşitli derleme kurallarıyla birlikte gelir.

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

Derlemenin yanı sıra, kodunuzdaki bağımlılıkları izlemek için Bazel'ı kullanarak testleri çalıştırabilir, derlemeyi sorgulayabilirsiniz.

Bazel oluşturma süreci

Bazel, derleme veya test çalıştırırken aşağıdakileri yapar:

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

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

  3. Son derleme çıkışları oluşturulana kadar giriş işlemleri üzerinde derleme işlemlerini yürütün.

Önceki tüm derleme çalışmaları önbelleğe alındığından, Bazel önbelleğe alınmış yapıları tanımlayıp yeniden kullanabilir ve yalnızca değişiklikleri yeniden oluşturabilir veya yeniden test edebilir. Doğruluğu daha da zorlamak için, Bazel'ı korumalı alan kullanarak eğik olarak derleme ve testler yürütecek, sapmayı en aza indirerek ve yeniden oluşturulabilirliği en üst düzeye çıkaracak şekilde ayarlayabilirsiniz.

İşlem grafiği

İşlem grafiği, derleme yapılarını, bunlar arasındaki ilişkileri ve Bazel'ın 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 değişiklikleri takip edebilir ve daha önce hangi derleme çalışmasının yapıldığını öğrenebilir. Grafik, kodunuzdaki bağımlı bağımlılıkları kolayca izlemenizi de sağlar.

Başlangıç eğitimleri

Bazel'ı kullanmaya başlamak için Getting Started'a (Başlarken) bakın veya doğrudan Bazel eğitimlerine gidin: