Bazel'a giriş

. Sorun bildirin Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

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 dilde çalışır ve birden fazla platform için çıkışlar oluşturur. Bazel destekleri birden fazla depoda büyük kod tabanları ve çok sayıda kullanıcı barındırır.

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 önceden yapılmış tüm işleri önbelleğe alır hem dosya içeriğinde 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 yalnızca onu yeniden inşa eder. Daha ileri hızlandırdıktan sonra projenizi, yüksek kaliteye sahip bir moda takip etmektir.

  • Bazel birden fazla platformdur. Bazel; Linux, macOS ve Windows'da çalışır. Bazel birden fazla platform için ikili programlar ve dağıtılabilir paketler derleyebilir: sunucu ve mobil cihazlardaki uygulamalar arasında geçiş yapar.

  • 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'ı 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. Bazel'ın derleme girişleri ile BUILD dosyalarını aradığı dizin ve bunların ve mağaza derleme çıktılarıdır.

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

    BUILD dosyanızı, şunu kullanarak derleme hedefleri tanımlayarak yazarsınız: Starlark, alana özgü bir dildir. (Örneği inceleyin burada bulabilirsiniz.)

    Derleme hedefi, Bazel'in oluşturacağı giriş yapıları kümesini belirtir ve bağımlılıklarını, Bazel’in projeyi oluşturmak için kullanacağı derleme kuralı ve İYS'lerden bahsetmek istiyorum.

    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'ı, bina oluşturmaya ek olarak derlemeyi test eder ve sorgulayın ve kodunuzdaki bağımlılıkları izleyin.

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 girdilerini dependencies, belirtilen derlemeyi uygular belirler ve bir eylem oluşturur grafiğe dönüştürülebilir.

  3. Girişlerde derleme işlemlerini yürütür ve nihai derleme çıktısını elde eder üretilir.

Önceki tüm derleme çalışmaları önbelleğe alındığından, Bazel önbelleğe alınan öğeleri tanımlayıp yeniden kullanabilir değişiklikleri yeniden derleyin veya yeniden test edin. Daha ayrıntılı yaptırım derleme ve testleri çalıştırmak üzere Bazel'ı ayarlayabilirsiniz. hermetik olarak korumalı alan kullanarak, sapmayı en aza indirme ve yeniden üretilebilirliği en üst düzeye çıkarmanızı sağlar.

İşlem grafiği

Eylem grafiği derleme yapılarını, bunlar arasındaki ilişkileri ve ve Bazel'in gerçekleştireceği derleme işlemlerini içerir. Bu grafik sayesinde Bazel, track özelliği derleme veya test komutları gibi işlem değişiklikleri ve önceden hangi derleme işlerinin yapıldığını bilme imkanınız olur. Grafik ayrıca şunları yapmanıza olanak tanır: kodunuzdaki bağımlılıkları kolayca izleyin.

Başlangıç eğitimleri

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