İş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 birsrcs
deps
copts
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.