Bazel Sözlüğü

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

İşlem

Derleme sırasında çalıştırılacak bir komut. Örneğin, yapıları girdi olarak, başka yapıları ise çıktı olarak üretir. Komut satırı bağımsız değişkenleri, işlem anahtarı, ortam gibi meta verileri içerir ve tanımlanan giriş/çıkış yapıları hakkında daha fazla bilgi sahibi olmanızı sağlar.

Şu makaleyi de inceleyebilirsiniz: Kural belgelerini

İşlem önbelleği

Yürütülen işlemlerin eşlemesini ve çıktıları üzerine düşünün. Önbellek anahtarı, işlem anahtarı olarak bilinir. CEVAP Bazel'ın artımlılık modelinin temel bileşeni olan Önbellek, ve böylece Bazel sunucusunun yeniden başlatılması durumunda kalır.

İşlem grafiği

Tamamlanan eylemlerin ve yapıların bellek içi grafiği okuması ve oluşturması gerekir. Grafikte, aynı telaffuzda kaynak dosyalarının (örneğin, dosya sisteminde) yanı sıra BUILD dosyalarında bahsedilmeyen ara/nihai yapılar. Prodüksiyon ürünü analiz aşamasında ve yürütme sırasında kullanılır aşamasında geçerlidir.

İşlem grafiği sorgusu (sorgu)

Derleme işlemleri üzerinde sorgu oluşturabilen bir sorgu aracı. Bu, derleme kurallarının neler yaptığıyla ilgili daha fazla bilgi edineceksiniz.

Eylem tuşu

Bir işlemin önbellek anahtarı. Hesaplanan işlem meta verilerine göre işlemde yürütülecek komutu, derleyici flag'lerini, kitaplığı içerebilir konuma veya sistem üstbilgilerine göre değişiklik gösterebilir. Bazel'ın önbelleğe almasını veya her bir işlemi deterministik olarak geçersiz kılabilir.

Analiz aşaması

Yapının ikinci aşaması. Hedef grafiği işler bellek içi işlem oluşturmak üzere BUILD dosyasında belirtilir çalıştırılacak işlemlerin sırasını belirleyen grafik yürütme aşamasından. Bu aşamada kuralın değerlendirilir.

Yapı

Kaynak dosya veya oluşturulmuş bir dosya Ayrıca, ağaç yapıları.

Bir yapı, birden fazla işlem için giriş olabilir, ancak yalnızca En fazla bir işlem.

Dosya hedefine karşılık gelen bir yapı, etiket.

En Boy Oranı

Kuralların, kontrol panelinde ek işlemler ve bildirmeyi konuştuk. Örneğin, hedef A B'ye bağımlıysa bir unsur Bir bağımlılık kenarından B'ye yukarı katan ve B'de ek işlemler çalıştıran A ek çıkış dosyaları oluşturmak ve toplamak için bu dosyayı kullanabilirsiniz. Bu ek işlemler aynı özelliğin gerekli olduğu hedefler arasında önbelleğe alınmış ve yeniden kullanılmış olabilir. Şununla oluşturulmuştur: aspect() Starlark Build API işlevi. Örneğin, şunun için kullanılabilir: meta verileri belirleyebilir ve hata analizi için işlemler oluşturabilirsiniz.

Ayrıca bkz. Yön belgeleri

En-Boy

Özelliklerin sonuçlara uygulanabildiği bir bileşim mekanizması değerlendirebiliriz. Örneğin, yeni bir hizmet tarafından kullanılmak üzere bilgi üreten bir IDE'ler,.java yardımcı olur.

Bir unsurun A üzerine uygulanması için B, sağlayıcılar B, provides özelliğinde reklam veriyor A kuruluşunun required_aspect_providers sayfasında belirttiğiyle eşleşmelidir özelliğini gönderin.

Özellik

Hedef başına derleme bilgilerini ifade etmek için kullanılan, kural parametresi. Örnekler arasında, sırasıyla birsrcsdepscopts kaynak dosyalarını, bağımlılıklarını ve özel derleyici seçeneklerini kapsar. Belirli belirli bir hedef için kullanılabilen özellikler, kural türüne bağlıdır.

.bazelrc

Bazel'in yapılandırma dosyası, başlangıç için varsayılan değerleri değiştirmekte kullanılır flag'lerini ve komut işaretlerini tanımlamak için daha sonra komut satırı kodu kullanılarak Bazel komut satırında birlikte ayarlanabilecek seçenek grupları --config işareti. Bazel birden fazla bazelrc dosyasındaki ayarları birleştirebilir (sistem genelinde, çalışma alanı başına, kullanıcı başına veya özel bir konumdan) ve bir bazelrc dosyası, diğer bazelrc dosyalarındaki ayarları da içe aktarabilir.

Blaze

Bazel'in Google'daki dahili sürümü. Google'ın kendi temel derleme sistemi tek depozdur.

DERLEME Dosyası

BUILD dosyası, Bazel'a hangi yazılımın kullanılacağını bildiren ana yapılandırma dosyasıdır bağımlılıklarının ne olduğu ve bunları nasıl oluşturacağınızla ilgili bilgi edineceksiniz. Bazel girdi olarak bir BUILD dosyası alır ve bu dosyayı kullanarak bağımlılıkların grafiğini oluşturur oluşturmak için tamamlanması gereken işlemleri türetmek her şeyi öğreteceğim. BUILD dosyası, bir dizini ve paket olarak bir BUILD dosyası içerir ve kurallar tarafından oluşturulan hedefler. Dosya, BUILD.bazel

BUILD.bazel Dosyası

BUILD Dosyası bölümüne bakın. AynıBUILD dizin.

.bzl Dosyası

Şurada yazılan kuralları, makroları ve sabitleri tanımlayan bir dosya Yıldızlar. Daha sonra bu alanlar BUILD load() işlevini kullanarak dosya oluşturun.

Grafik oluştur

Bazel'in derleme gerçekleştirmek için oluşturup geçirdiği bağımlılık grafiği. Hedefler gibi düğümleri içerir, yapılandırılmış hedefleri, eylemleri ve yapıları kapsar. CEVAP üzerinde bir grup kümenin üzerinde olduğu tüm yapıların istenen hedeflerin güncel olduğu doğrulanır.

Derleme ayarı

Starlark tarafından tanımlanan bir yapılandırma parçasıdır. Geçişler, derleme ayarlarını bir alt grafiğin yapılandırma. Kullanıcıya komut satırı işareti olarak gösterilirse derleme bayrağı olarak da bilinir.

Derlemeyi temizle

Önceki derlemelerin sonuçlarını kullanmayan bir derleme. Bu genellikle daha yavaştır artımlı bir yapıdan daha fazladır ancak genellikle daha doğru olarak ayarlayabilirsiniz. Bazel hem temiz hem de artımlı derlemeleri garanti eder her zaman doğrudur.

İstemci-sunucu modeli

bazel komut satırı istemcisi, yerel makine kullanarak Bazel komutlarını yürütün. Sunucu, komutuna girebilirsiniz, ancak belirli bir süre işlem yapılmadığında (veya Bazel'in kapatılması). Bazel'ı sunucu ve istemci olarak ayırmak, JVM'nin amortismanını sağlar başlatma süresini destekler ve daha hızlı artımlı derlemeleri destekler çünkü eylem grafiği komutlar arasında bellekte kalır.

Komut

bazel build, bazel test, bazel run ve bazel query gibi farklı Bazel işlevlerini çağırmak için komut satırında kullanılır.

Komut işaretleri

Bir komuta özel işaret grubu. Komut işaretleri belirtildi (bazel build <command flags>) komutundan sonra ekleyin. İşaretlemelerin geçerli olduğu yer: bir veya daha fazla komut kullanabilirsiniz. Örneğin, --configure özel olarak bazel sync komutu ancak --keep_going; sync, build ve test ve daha fazlası. İşaretler genellikle yapılandırma için kullanılır dolayısıyla, işaret değerlerindeki değişiklikler Bazel'in bellek içi geçersiz kılmasına neden olabilir. ve analiz aşamasına yeniden başlayın.

Yapılandırma

Kuralların nasıl oluşturulduğunu etkileyen, kural tanımlarının dışında kalan bilgiler işlem. Her derlemenin hedef platform, işlem ortamı değişkenleri ve komut satırı derlemesi işaretleri hakkında daha fazla bilgi edinin. Geçişler, yapılandırma gibi çeşitli yapılandırmalar sunar.

Şu makaleyi de inceleyebilirsiniz: Yapılandırmalar

Yapılandırma kırpma

Yalnızca yapılandırma parçalarını dahil etme süreci bilmesini sağlayın. Örneğin, C++ ile //:j Java ikili programı derlerseniz //:c bağımlılığı için, --javacopt değerini --javacopt değişikliği C+++'yı gereksiz şekilde bozduğundan //:c yapılandırması önbellek oluşturabilirsiniz.

Yapılandırılmış sorgu (cquery)

Yapılandırılmış aşırı sorgulama yapan bir sorgu aracı (analiz aşamasından sonra) ) bulunur. Bu, select() ve derleme işaretleri (örneğin, --platforms) sonuçlarda doğru şekilde yansıtıldığını unutmayın.

Ayrıca bkz: cquery belgeleri

Yapılandırılmış hedef

Bir hedefin yapılandırma. Analiz aşamasında Bunun için derlemenin seçeneklerini, oluşturulması gereken hedeflerle birleştirebilirsiniz. Örneğin, //:foo aynı URL'de iki farklı mimari için derleme yapıyorsa iki yapılandırılmış hedefi vardır: <//:foo, x86> ve <//:foo, arm>.

Doğruluk

Bir yapı, çıktısı ürünün durumunu doğru yansıttığında doğrudur. geçişli girişlerdir. Doğru yapılar oluşturmak için Bazel hermetik, tekrarlanabilirdir ve geliştirmenin analiz ve işlem yürütme deterministik.

Bağımlı seçim

İki hedef arasında yönlendirilen bir kenar. Bir //:foo hedefinin hedefi var bağımlılık hedef //:bar; //:foo özelliğinin özellik değerleri bir referans: //:bar. Aşağıdaki durumlarda //:foo, //:bar öğesine işlem bağımlılığı içerir: //:foo öğesindeki işlem, bir kullanıcı tarafından oluşturulan bir giriş yapısına bağlıdır işlem (//:bar).

Bazı durumlarda dış bağımlılık anlamına da gelebilir; bkz. modüller.

Ayrılan

Geçişli bağımlılıklarla ilgili veri toplamak için kullanılan bir veri yapısı. Optimize edilmiş zaman ve mekan açısından verimli olduğunu (yüz binlerce dosya) içeren çok büyük boyutlu dosyalar buna dahildir. Uygulandığı yer alanı verimli bir şekilde kullanmak için yinelemeli olarak diğer noktalara başvurur. Kural uygulamalar "düzleştirilmemelidir" emin olun. kural, derleme grafiğinin en üst düzeyindedir. Büyük depseleri düzeltmek tükettiğini düşünelim. Bazel'in dahili ayarlarında iç içe yerleştirilmiş kümeler olarak da bilinir. hakkında bilgi edindiniz.

Ayrıca bkz. Depset belgeleri

Disk önbelleği

Uzaktan önbelleğe alma özelliği için yerel bir disk üzerinde blob deposu. Kullanılabileceği yerler gerçek bir uzak blob mağazasıyla bağlantılı.

Distribütör

Bazel'in normalde bir şifre ekleyebilirsiniz. Derlemelerin tamamen çevrimdışı olarak çalışmasını sağlar.

Dinamik yürütme

Temel alınan verilere göre yerel ve uzaktan yürütme arasında seçim yapan kullanır ve daha hızlı başarılı olanın yürütme sonuçlarını yöntemidir. Bazı işlemler yerel olarak daha hızlı yürütülür (örneğin, bağlantı) ve diğerleri uzaktan daha hızlıdır (örneğin, birbirine çok benzer derleme) Dinamik bir yürütme stratejisi, mümkün olan en iyi artımlı ve temiz derleme süreleri elde edin.

Yürütme aşamasında

Yapının üçüncü aşaması. İşlemdeki işlemleri yürütür grafik analiz aşamasında oluşturulur. Bu işlemler, okuma ve yazma işlemleri için yürütülebilir dosyaları (derleyiciler, komut dosyaları) çağırır yapılara tabidir. Doğal stratejiler bu eylemlerin nasıl olacağını kontrol eder yürütülür: yerel, uzaktan, dinamik olarak, korumalı alana alınan, Docker'a vb.

Yürütme kökü

Çalışma alanının çıkış tabanında bir dizin yerel işlemlerin yürütüldüğü dizin korumalı alanda olmayan derlemeler Dizin içeriği çoğunlukla sembolik bağlantılardan oluşuyor yapıların sayısını artırmanızı sağlar. Yürütme kökü de diğer girişler gibi harici depoların sembolik bağlantılarını ve bazel-out çıkışları depolayacak bir dizindir. Yükleme aşamasında hazırlanma geçişi temsil eden dizinlerin bir sembol bağlantı ormanı oluşturarak derlemenin bağlı olduğu paketlerin kapatılmasıdır. Komut satırından bazel info execution_root ile erişilebilir.

Dosya

Artifact bölümünü inceleyin.

Hermeticity

Derleme ve test etme üzerinde harici etki yoksa yapı hermetiktir Bu sayede, sonuçların deterministik ve şeffaf olmasını sağlamaya yardımcı olur. doğru olarak değiştirin. Örneğin, hermetik derlemeler genellikle işlemlere erişme, bildirilen girişlere erişimi kısıtlama, sabit zaman damgaları kullanma ve ortam değişkenlerine erişimi kısıtlayabilir ve belirli işlemler için sabit çekirdekler rastgele sayı oluşturucular

Artımlı derleme

Artımlı derleme, derleme süresini kısaltmak için önceki derlemelerin sonuçlarını yeniden kullanır gözlemlediğimiz bir grup taktik bulunur. Bağımlılık kontrolü ve önbelleğe alma, doğru sonuç bulunamadı. Artımlı derleme, temiz seçeceğiz.

Şirket

Bir hedef için tanımlayıcı. Genellikle, @repo//path/to/package:target; burada repo, Hedefi içeren depo; yol path/to/package bildiren BUILD dosyasını içeren dizine target (bu dizin paket olarak da bilinir) ve target hedefin adıdır. Duruma bağlı olarak, bu senaryoda söz dizimi atlanabilir.

Şu makaleyi de inceleyebilirsiniz: Etiketler

Yükleme aşaması

Bazel'in yürütmek için BUILD dosyalarını yürüttüğü bir derlemenin ilk aşaması paketleri nasıl oluşturabilirsiniz? Makrolar ve belirli işlevler glob() bu aşamada değerlendirilir. Araştırmanın ikinci aşamasına aralıklı olarak analiz aşamasını temel alan bir hedef grafiği de görebilirsiniz.

Makro

tek bir Starlark işlevi. Ortak kural beyanının yeniden kullanılmasını sağlar BUILD dosyalarında benzerlikler taşır. Temel kural hedefine genişletildi bildirimleri yükleme aşamasında gösterin.

Ayrıca bkz: Makro belgeleri

Hafıza güçlendirici

Bir kural yazarı tarafından hızlı bir şekilde anlamak için seçilen, kullanıcıların okuyabileceği kısa bir dize işlemin ne yaptığına bakalım. Hafıza güçlendiricilerin kullanımı spawn strategy seçimleri için tanımlayıcılar. Aksiyon anımsatıcılarına bazı örnekler Java kurallarında Javac, C++ kurallarında ve CppCompile Android kurallarından AndroidManifestMerger.

Modül

Her biri farklı versiyonları olan, birden çok sürümü olabilen bir Bazel projesi ve diğer modüllere olan bağımlılıkları ortaya koyabilir. Bu, diğer sektörlerdeki yaygın kavramlara benzer. bağımlılık yönetimi sistemleri (ör. Maven yapı), npm paketi, Modülü veya bir kargo sanatını kullanın. Modüller Bazel'in harici departmanlarının sistemi oluşturmayı öğreneceksiniz.

Her modül, başında MODULE.bazel dosyası bulunan bir depo kök. Bu dosya, modülün kendisiyle ilgili meta verileri (ör. modülün adı ve bağımlılarını ve araç zinciri dahil olmak üzere çeşitli verileri kayıtları ve modül uzantısı girdilerini kullanabilirsiniz.

Modül meta verileri Bazel kayıt defterlerinde barındırılır.

Şu kaynakları da inceleyin: Bazel modülleri

Modül Uzantısı

Okuyarak depo oluşturmak için çalıştırılabilen bir mantık parçası modül bağımlılık grafiğinden ve deponun çağrılmasından kaynaklanan girişler kuralları uygulayın. Modül uzantıları, depoya benzer özelliklere sahiptir kurallarıyla internete erişmelerine, dosya G/Ç işlemleri gerçekleştirmelerine ve benzeri işlem yapmalarına olanak tanır.

Ayrıca bkz: Modül uzantıları

Yerel kurallar

Bazel'de yerleşik olarak bulunan ve Java'da uygulanan kurallar. Bu tür kurallar .bzl dosyalarında, yerel modülde işlev olarak görünür ( örneğin, native.cc_library veya native.java_library). Kullanıcı tanımlı kurallar (yerel olmayan) URL'leri Starlark kullanılarak oluşturulur.

Çıkış tabanı

Bazel çıkış dosyalarının depolanacağı çalışma alanına özel bir dizindir. Kullanılmış çıkışları çalışma alanının kaynak ağacından (ana depo) içerir. Çıkış kullanıcısı kökünde bulunur.

Çıkış grupları

Bazel bir web sitesi oluşturmayı tamamladığında oluşturulması beklenen bir hedefi belirleyebilirsiniz. Kurallar, her zamanki çıkışlarını "varsayılan çıkış grubuna" yerleştirir (ör.cc_library için java_library, .a ve .so için .jar dosyası hedefleri) sunun. Varsayılan çıkış grubu, yapılar, komut satırında bir hedef istendiğinde oluşturulur. Kurallar, BUILD dosya (filegroup kuralı) veya komut satırı (--output_groups işareti).

Çıkış kullanıcı kökü

Bazel'in çıkışlarının depolandığı kullanıcıya özel bir dizin. Dizin adı: kullanıcının sistem kullanıcı adından türetilir. Aşağıdaki durumlarda çıkış dosyası çakışmalarını engeller sistemde aynı projeyi aynı anda birden çok kullanıcının derleyebilmesidir. Ayrı çalışma alanlarının derleme çıkışlarına karşılık gelen alt dizinleri içerir. çıktı tabanları olarak da bilinir.

Paket

Bir BUILD dosyası ile tanımlanan hedefler kümesi. CEVAP paketin adı, BUILD dosyasının depoya göre yoludur kök. Bir paket, BUILD içeren alt paketler veya alt dizinler içerebilir bir paket hiyerarşisi oluşturur.

Paket grubu

Bir paket grubunu temsil eden bir hedef. Genellikle visibility bölgesinde kullanılır özellik değerleridir.

Platform

Bir "makine türü" üzerine konuşacağız. Buna, Bazel'in ("ana makine" platformu) kullandığında, makinelerin derleme araçları ("yürütme" platformları) üzerinde yürütülür. "hedef platformlar" için oluşturulduğu anlamına gelir.

Sağlayıcı

Aralarında aktarılacak bir bilgi birimini açıklayan şema kural hedefleriyle birlikte çalışır. Genellikle bu derleyici seçenekleri, geçişli kaynak veya çıkış dosyaları, meta verileri derledik. Aşağıdakileri yapmak için depsets ile birlikte sıkça kullanılır: birikmiş geçişli verileri verimli bir şekilde depolamanıza yardımcı olabilir. Yerleşik sağlayıcı örneği DefaultInfo.

Ayrıca bkz. Sağlayıcı dokümanları

Sorgu (kavram)

Anlamak için yapı grafiğini analiz etme süreci target özellikleri ve bağımlılık yapıları. Bazel, sorgu varyantları: query, cquery ve sorgu.

sorgu (komut)

Yapının yükleme sonrasıyükleme işlemi üzerinde çalışan bir sorgu aracı aşama hedef grafiği. Bu nispeten hızlı, ancak select(), derleme işaretleri ve yapılar oluşturabilir veya işlemler oluşturabilirsiniz.

Şu konulara da göz atın: Sorgu nasıl yapılır?, Sorgu referansı

Kod deposu

Kökünde bir sınır işaretçisi dosyası bulunan ve kaynak içeren bir dizin ağacı dosyaları oluşturabilirsiniz. Genellikle depo olarak kısaltılır.

Depo sınır işaretçi dosyası MODULE.bazel olabilir (bu deponun bir Bazel modülünü), REPO.bazel ya da eski bağlamlarda WORKSPACE veya WORKSPACE.bazel. Herhangi bir depo sınır işaretçi dosyası, repo; bir dizinde bu tür birden fazla dosya bir arada bulunabilir.

Ana depo, mevcut Bazel komutunun çalıştırıldığı depodur.

Harici kod depoları, MODULE.bazel içinde modüller belirtilerek tanımlanır ya da modülde depo kurallarını çağırma uzantıları. İsteğe bağlı olarak önceden belirlenmiş bir web sitesine getirilebilir "sihirli" dikkat edin.

Her deponun benzersiz ve sabit bir standart adı vardır ve potansiyel olarak farklı apparent adları oluşturur.

Ayrıca bkz. Harici bağımlılıklara genel bakış

Kod deposu önbelleği

Derlemeler için Bazel tarafından indirilen dosyaların içerik adreslenebilir, paylaşımlı bir önbelleği çalışma alanlarında paylaşılabilir. Çevrimdışı derlemeleri indirin. Genellikle depodan indirilen dosyaları önbelleğe almak için kullanılır kuralları (ör. http_archive) ve depo kuralı API'leri (ör. repository_ctx.download. Dosyalar yalnızca SHA-256 sağlamaları emin olun.

Depo kuralı

Bazel'a nasıl gerçeğe dönüştürüleceğini (veya "getirmek") için bir depoyu kullanın. Genellikle depo kuralı şeklinde kısaltılır. Depo kuralları, modüller içerebilir veya modül uzantıları tarafından çağrılabilir. Depo kuralları internete erişebilir veya dosya G/Ç işlemi gerçekleştirebilir; en yaygın kod deposu kuralı http_archive şeklindedir. Bu durumda, internet.

Ayrıca bkz: Depo kuralı dokümanları

Yeniden üretilebilirlik

Derleme veya test için kullanılacak bir dizi girişin, derleme ya da test özelliği ne zaman, yöntem ve ne olursa olsun her seferinde aynı çıktıları veya ortamdan bağımsız olarak. Bu, çıkışların şu ibarelere uygun olmadığı anlamına gelmez: doğru olarak veya istenen çıktıları üretir.

Kural

BUILD dosyasında aşağıdaki gibi kural hedeflerini tanımlamak için kullanılan bir şema: cc_library. BUILD dosyasının yazarı açısından kural şunlardan oluşur: bir dizi özellik ve kara kutu mantığı. Mantık, kural hedefi, çıkış yapılarının nasıl oluşturulacağını ve bilgilerin diğer kural hedeflerini belirlemenize yardımcı olur. .bzl yazar açısından kurallar Bazel'i yeni programlama dillerini destekleyecek ve ortam olarak da bilinir.

Kurallar, yükleme aşamasına geçelim. Analiz aşaması kuralında hedefleri, aşağı akış bağımlılıklarına sağlayıcılar ve aşağıdakilerin nasıl yapılacağını açıklayan işlemler kaydedin ve çıktı yapılarını oluşturur. Bu işlemler, aynı komuttaki yürütme aşamasında geçerlidir.

Şu makaleyi de inceleyebilirsiniz: Kural belgelerini

Kural hedefi

Bir kuralın örneği olan hedef. Dosya hedefleriyle kontrastlar ve paket grupları. Kural ile karıştırılmamalıdır.

Çalıştırma dosyaları

Yürütülebilir bir hedefin çalışma zamanı bağımlılıkları. En yaygın olarak da yürütülebilir bir test kuralının yürütülebilir çıktısı ve çalıştırma dosyaları ve testin veri bağımlılıklarını belirlemenize yardımcı olur. Yürütülebilir dosyanın çağrılmasından önce ( bazel testi) çalıştırıyorsanız Bazel, yürütülebilir test dosyasıyla birlikte çalıştırma dosyası ağacını hazırlar .

Ayrıca bkz. Runfiles dokümanları

Korumalı alana alma

Devam eden bir eylemi kısıtlanmış ve geçici bir yürütme kökü oluşturur. Böylece, bildirilmemiş girişleri okuma veya bildirilmemiş çıkışları yazma. Korumalı alana alma, hermeticity, ancak genellikle bir performans maliyeti vardır ve işletim sisteminden gelen destekler. Performans maliyeti platforma göre değişir. Linux'ta bu önemli bir nokta değildir ancak macOS'te korumalı alanı kullanılamaz hale getirebilir.

Gökyüzü Çerçevesi

Skyframe, Bazel'in temel paralel, işlevsel ve artımlı değerlendirme çerçevesidir.

Istampalama

Bazel tarafından oluşturulmuş öğelere ek bilgi yerleştirme özelliği yapılara tabidir. Örneğin bu, kaynak kontrolü, derleme zamanı ve diğer çalışma alanı ya da ortamla ilgili bilgileri sağlamalısınız. --workspace_status_command işaretini ve kuralları kullanarak etkinleştirin. damga özelliğini desteklemelidir.

Starlark

Kurallar ve makrolar yazmak için kullanılan uzantı dili. CEVAP yönelik belirli bir programlama dilinde daha iyi performans elde etmek için kullanılabilir. .bzl kullanır dosya uzantısına sahip olabilir. BUILD dosya daha da fazla eskiden Starlark'ın kısıtlanmış sürümü (def işlev tanımı yok) kullanmaya başladım.

Ayrıca bkz: Starlark dili dokümanları

Startup flag'leri

bazel ile komut arasında belirtilen flag'ler grubu, örneğin, --host_jvm_debug derlemesi. Bu işaretler, yapılandırmasını sağlar; böylece başlatma işaretleri sunucunun yeniden başlatılmasına neden olur. Startup flag'leri herhangi bir komutuna ekleyin.

Hedef

BUILD dosyasında tanımlanan ve etiket. Hedefler, çalışma alanının derlenebilir birimlerini temsil eder bakış açısına göre hareket eder.

Kural örneklenerek tanımlanan bir hedefe kural denir hedefi belirleyin. Kurala bağlı olarak, bu dosyalar çalıştırılabilir (ör. cc_binary) veya test edilebilir (cc_test gibi). Kural hedefleri genellikle özellikleri (ör. deps) aracılığıyla diğer hedefler; bu bağımlılıklar hedef grafiğin temelini oluşturur.

Kural hedeflerinin yanı sıra dosya hedefleri ve paket grubu da vardır belirler. Dosya hedefleri, başvurulan yapılara karşılık gelir BUILD dosyası içinde. Özel bir durum olarak, herhangi bir paketin BUILD dosyası her zaman söz konusu pakette bir kaynak dosya hedefi olarak değerlendirilir.

Hedefler yükleme aşamasında bulunur. Etkinlik sırasında analiz aşamasında hedefler, oluşturulan konfigürasyonlarını yapılandırılmış olanlara hedefler.

Hedef grafik

Hedefler ve bağımlılıklarının bellek içi grafiği. Prodüksiyon tarihi: Bu aşama, yükleme aşamasını izler ve analizde girdi olarak kullanılır. aşamasında geçerlidir.

Hedef kalıbı

Komut satırında bir hedef grubu belirtmenin bir yoludur. Yaygın kullanılan kalıplar :all (tüm kural hedefleri), :* (tüm kural + dosya hedefleri), ... (geçerli paket ve tüm alt paketler yinelemeli olarak). Kullanılabilir birlikte, örneğin, //...:*, tüm reklam gruplarındaki tüm kural ve dosya paketleri çalışma alanı kökünden yinelemeli olarak.

Testler

Kural hedefleri, test kurallarından örneklendirilir ve bu nedenle test yürütülebilir. Yürütülebilir dosyanın tamamlanmasından itibaren sıfır değerinde bir dönüş kodu testin başarılı olduğunu gösterir. Bazel ile testler arasındaki tam sözleşme (örneğin, ortam değişkenleri, test sonucu toplama yöntemleri) belirtildiğinden, Test Ansiklopedi.

Araç Zinciri

Bir dil için çıkışlar oluşturmak amacıyla kullanılan bir araç seti. Bir araç zinciri genellikle . Araç zincirleri de platform, yani Unix derleyici araç zincirinin bileşenleri Araç zinciri aynı dil için olmasına rağmen Windows varyantı. Seçim araç zincirinin çözünürlüğü, platform için doğru araç zinciridir.

Üst düzey hedef

Derleme hedefi Bazel komutunda istenirse üst düzey olur satırında görünür. Örneğin //:foo, //:bar alanına bağlıysa ve bazel build //:foo çağrılırsa bu derleme için //:foo üst düzeydir, //:bar ise değildir ancak her iki hedefin de oluşturulması gerekecektir. Aralarındaki önemli fark üst düzey ve üst düzey olmayan hedefler arasındaki komutun, flag'lerini kullanabilirsiniz. .bazelrc) üst düzey için yapılandırmayı ayarlar hedefler ancak üst düzey olmayanlar için bir geçiş ile değiştirilebilir belirler.

Geçiş

Bir değerden diğerine yapılandırma durumunun eşlemesi. Oluşturma grafiğindeki hedeflerin farklı olmasını sağlar (aynı kuraldan örneklendirilmiş olsalar bile) CEVAP geçişlerin yaygın kullanımı, bölünmüş geçişlerdir. hedef grafik, şunun için farklı yapılandırmalarla çatallanır: anlamına gelir. Örneğin, yerel ikili programlarla bir Android APK'sı oluşturulabilir , tek bir derlemede bölünmüş geçişler kullanılarak ARM ve x86 için derlenmiştir.

Ayrıca bkz. Kullanıcı tanımlı geçişler

Ağaç yapısı

Bir dosya koleksiyonunu temsil eden bir yapı. Bu dosyaların kendileri yapı değildir, bu dosyalar üzerinde çalışan bir işlem ağaç yapısını giriş veya çıkış olarak kaydedin.

Görünürlük

Derleme sistemindeki istenmeyen bağımlılıkları önlemek için kullanılan iki mekanizmadan biri: Bir hedefin bağımlı olup olmayacağını kontrol etmek için hedef görünürlük diğer hedefler tarafından; ve yük görünürlüğü ayarlayabilirsiniz. Bu özellik, BUILD değerinin veya .bzl dosyası, belirli bir .bzl dosyasını yükleyebilir. Bağlam olmadan genelde "görünürlük" hedef görünürlük anlamına gelir.

Ayrıca bkz: Görünürlük belgeleri

Çalışma alanı

Tüm Bazel komutlarının paylaştığı ortam, aynı ana depo.

Geçmişte “depo” kavramlarının ve "workspace", oldu birleştirilmiş; "çalışma alanı" terimi genellikle proje yaşam döngüsünde veri deposudur ve bazen "depo" ile eş anlamlı olarak da kullanılır. Bu tür kullanım netlik açısından kaçınılmalıdır.