Tindakan
Perintah untuk dijalankan selama build, misalnya, panggilan ke compiler yang menggunakan artefak sebagai input dan menghasilkan artefak lain sebagai output. Mencakup metadata seperti argumen command line, kunci tindakan, variabel lingkungan, dan artefak input/output yang dideklarasikan.
Lihat juga: Dokumentasi aturan
Cache tindakan
Cache di disk yang menyimpan pemetaan tindakan yang dieksekusi ke output yang dibuatnya. Kunci cache dikenal sebagai kunci tindakan. Komponen inti untuk model inkrementalitas Bazel. Cache disimpan di direktori dasar output dan dengan demikian tetap ada setelah server Bazel dimulai ulang.
Grafik tindakan
Grafik dalam memori tindakan dan artefak yang dibaca dan dihasilkan oleh tindakan ini. Grafik dapat mencakup artefak yang ada sebagai
file sumber (misalnya, dalam sistem file) serta artefak
perantara/akhir yang dihasilkan yang tidak disebutkan dalam file BUILD
. Dihasilkan
selama fase analisis dan digunakan selama fase
eksekusi.
Kueri grafik tindakan (aquery)
Alat kueri yang dapat membuat kueri atas tindakan build. Hal ini memberikan kemampuan untuk menganalisis bagaimana aturan build diterjemahkan ke dalam build tugas yang sebenarnya.
Tombol tindakan
Kunci cache tindakan. Dihitung berdasarkan metadata tindakan, yang mungkin mencakup perintah yang akan dieksekusi dalam tindakan, flag compiler, lokasi library, atau header sistem, bergantung pada tindakan. Memungkinkan Bazel untuk meng-cache atau membatalkan validasi setiap tindakan secara deterministik.
Fase analisis
Fase kedua build. Memproses grafik target
yang ditentukan dalam file BUILD
untuk menghasilkan grafik
tindakan dalam memori yang menentukan urutan tindakan yang akan dijalankan selama
fase eksekusi. Ini adalah tahap saat penerapan
aturan dievaluasi.
Artefak
File sumber atau file yang dihasilkan. Dapat juga berupa direktori file, yang dikenal sebagai artefak pohon.
Artefak dapat menjadi input untuk beberapa tindakan, tetapi hanya boleh dihasilkan oleh paling banyak satu tindakan.
Artefak yang sesuai dengan target file dapat diatasi dengan label.
Aspek
Mekanisme bagi aturan untuk membuat tindakan tambahan dalam dependensinya. Misalnya, jika target A bergantung pada B, seseorang dapat menerapkan aspek pada
A yang melintasi up tepi dependensi ke B, dan menjalankan tindakan tambahan di B
untuk membuat dan mengumpulkan file output tambahan. Tindakan tambahan ini di-cache dan digunakan kembali di antara target yang memerlukan aspek yang sama. Dibuat dengan fungsi
aspect()
Starlark Build API. Dapat digunakan, misalnya, untuk membuat
metadata untuk IDE, dan membuat tindakan untuk linting.
Lihat juga: Dokumentasi aspek
Aspek pada aspek
Mekanisme komposisi yang memungkinkan aspek diterapkan ke hasil
aspek lainnya. Misalnya, aspek yang menghasilkan informasi untuk digunakan oleh
IDE dapat diterapkan di atas aspek yang menghasilkan file .java
dari
proto.
Agar aspek A
diterapkan di atas aspek B
, penyedia yang
mengiklankan B
dalam atribut provides
-nya
harus cocok dengan apa yang dideklarasikan A
dalam atribut required_aspect_providers
-nya.
Atribut
Parameter untuk aturan, yang digunakan untuk menyatakan informasi build per target.
Contohnya mencakup srcs
, deps
, dan copts
, yang masing-masing mendeklarasikan
file sumber, dependensi, dan opsi compiler kustom target. Atribut tertentu yang tersedia untuk target tertentu bergantung pada jenis aturannya.
.bazelrc
File konfigurasi Bazel digunakan untuk mengubah nilai default flag startup dan flag perintah, serta untuk menentukan grup opsi umum yang kemudian dapat ditetapkan bersama di command line Bazel menggunakan flag --config
. Bazel dapat menggabungkan setelan dari beberapa file bazelrc
(di seluruh sistem, per-ruang kerja, per-pengguna, atau dari lokasi kustom), dan file bazelrc
juga dapat mengimpor setelan dari file bazelrc
lainnya.
Blaze
Versi Bazel internal Google. Sistem build utama Google untuk mono-repositorinya.
File BUILD
File BUILD
adalah file konfigurasi utama yang memberi tahu Bazel output software apa yang akan dibangun, apa dependensinya, dan cara membangunnya. Bazel
mengambil file BUILD
sebagai input dan menggunakan file tersebut untuk membuat grafik dependensi
dan untuk mendapatkan tindakan yang harus diselesaikan untuk membuat output software
menengah dan akhir. File BUILD
menandai direktori dan subdirektori yang tidak
berisi file BUILD
sebagai paket, dan dapat berisi
target yang dibuat oleh aturan. File juga dapat diberi nama
BUILD.bazel
.
File BUILD.bazel
Lihat File BUILD
. Lebih diprioritaskan daripada file BUILD
di direktori yang sama.
File .bzl
File yang menentukan aturan, makro, dan konstanta yang ditulis dalam
Starlark. Kemudian, file tersebut dapat diimpor ke file BUILD
menggunakan fungsi load()
.
Buat grafik
Grafik dependensi yang dibuat dan dilalui Bazel untuk melakukan build. Mencakup node seperti target, target yang dikonfigurasi, tindakan, dan artefak. Build dianggap selesai jika semua artefak yang menjadi dependensi sekumpulan target yang diminta diverifikasi sebagai yang terbaru.
Setelan build
Bagian konfigurasi yang ditentukan Starlark. Transisi dapat menetapkan setelan build untuk mengubah konfigurasi subgrafik. Jika diekspos ke pengguna sebagai flag command line, juga dikenal sebagai flag build.
Build bersih
Build yang tidak menggunakan hasil build sebelumnya. Build ini umumnya lebih lambat daripada build inkremental, tetapi umumnya dianggap lebih benar. Bazel menjamin bahwa build bersih dan inkremental selalu benar.
Model klien-server
Klien command line bazel
secara otomatis memulai server latar belakang di mesin lokal untuk menjalankan perintah Bazel. Server tetap ada di seluruh perintah, tetapi otomatis berhenti setelah tidak aktif selama beberapa waktu (atau secara eksplisit melalui penonaktifan bazel). Memisahkan Bazel menjadi server dan klien membantu mengamortisasi waktu startup JVM dan mendukung build inkremental yang lebih cepat karena grafik tindakan tetap berada dalam memori di seluruh perintah.
Perintah
Digunakan di command line untuk memanggil berbagai fungsi Bazel, seperti bazel
build
, bazel test
, bazel run
, dan bazel query
.
Tanda perintah
Kumpulan flag khusus untuk perintah. Flag perintah ditentukan
setelah perintah (bazel build <command flags>
). Flag dapat berlaku untuk
satu atau beberapa perintah. Misalnya, --configure
adalah flag khusus untuk perintah
bazel sync
, tetapi --keep_going
berlaku untuk sync
, build
,
test
, dan lainnya. Flag sering digunakan untuk tujuan konfigurasi, sehingga perubahan nilai flag dapat menyebabkan Bazel membatalkan validasi grafik dalam memori dan memulai ulang fase analisis.
Konfigurasi
Informasi di luar definisi aturan yang memengaruhi cara aturan membuat tindakan. Setiap build memiliki setidaknya satu konfigurasi yang menentukan target platform, variabel lingkungan tindakan, dan flag buildcommand-line. Transisi dapat membuat konfigurasi tambahan, seperti untuk alat host atau kompilasi silang.
Lihat juga: Konfigurasi
Pemangkasan konfigurasi
Proses hanya menyertakan bagian konfigurasi yang sebenarnya dibutuhkan target. Misalnya, jika Anda membuat biner Java //:j
dengan dependensi C++ //:c
, akan sia-sia jika menyertakan nilai --javacopt
dalam konfigurasi //:c
karena mengubah --javacopt
secara tidak perlu akan merusak kemampuan cache build C++.
Kueri yang dikonfigurasi (cquery)
Alat kueri yang membuat kueri atas target yang dikonfigurasi (setelah fase analisis selesai). Artinya, select()
dan flag build (seperti
--platforms
) tercermin secara akurat dalam hasil.
Lihat juga: dokumentasi cquery
Target yang dikonfigurasi
Hasil evaluasi target dengan
konfigurasi. Fase analisis menghasilkan
ini dengan menggabungkan opsi build dengan target yang perlu dibangun.
Misalnya, jika //:foo
membangun untuk dua arsitektur berbeda dalam build yang sama, maka //:foo
memiliki dua target yang dikonfigurasi: <//:foo, x86>
dan <//:foo, arm>
.
Ketepatan
Build sudah benar jika outputnya secara akurat mencerminkan status input transitifnya. Untuk mencapai build yang benar, Bazel berupaya menjadi hermetik, dapat direproduksi, dan membuat analisis build dan eksekusi tindakan deterministik.
Dependensi
Tepi berarah antara dua target. Target //:foo
memiliki ketergantungan
target pada target //:bar
jika nilai atribut //:foo
berisi
referensi ke //:bar
. //:foo
memiliki dependensi tindakan pada //:bar
jika
tindakan di //:foo
bergantung pada artefak input yang dibuat oleh
tindakan di //:bar
.
Depset
Struktur data untuk mengumpulkan data tentang dependensi transitif. Dioptimalkan sehingga penggabungan depsets menjadi efisien dari segi waktu dan ruang, karena biasanya terdapat depsets yang sangat besar (ratusan ribu file). Diimplementasikan untuk merujuk secara rekursif ke depsets lain karena alasan efisiensi ruang. Implementasi Rule tidak boleh "meratakan" depsets dengan mengonversinya menjadi daftar, kecuali aturan berada di tingkat teratas grafik build. Meratakan depsets besar akan menyebabkan konsumsi memori yang sangat besar. Juga dikenal sebagai set bertingkat dalam penerapan internal Bazel.
Lihat juga: Dokumentasi Depset
Cache disk
Penyimpanan blob di disk lokal untuk fitur caching jarak jauh. Dapat digunakan bersama dengan penyimpanan blob jarak jauh yang sebenarnya.
Distdir
Direktori hanya baca yang berisi file yang seharusnya diambil Bazel dari internet menggunakan aturan repositori. Memungkinkan build berjalan sepenuhnya offline.
Eksekusi dinamis
Strategi eksekusi yang memilih antara eksekusi lokal dan jarak jauh berdasarkan berbagai heuristik, dan menggunakan hasil eksekusi metode yang berhasil lebih cepat. Tindakan tertentu dieksekusi lebih cepat secara lokal (misalnya, penautan) dan tindakan lainnya lebih cepat dari jarak jauh (misalnya, kompilasi yang sangat dapat diparalelkan). Strategi eksekusi dinamis dapat memberikan waktu build inkremental dan bersih yang terbaik.
Fase eksekusi
Fase ketiga build. Menjalankan tindakan dalam grafik tindakan yang dibuat selama fase analisis. Tindakan ini memanggil file yang dapat dieksekusi (kompiler, skrip) untuk membaca dan menulis artefak. Strategi pembuatan mengontrol cara tindakan ini dieksekusi: secara lokal, jarak jauh, dinamis, dalam sandbox, docker, dan sebagainya.
Root eksekusi
Direktori di direktori dasar output ruang kerja tempat tindakan lokal dieksekusi dalam build non-sandbox. Isi direktori sebagian besar berupa link simbolis
dari artefak input dari ruang kerja. Root eksekusi juga
berisi symlink ke repositori eksternal sebagai input lain dan direktori bazel-out
untuk menyimpan output. Disiapkan selama fase pemuatan
dengan membuat hutan link simbolik dari direktori yang merepresentasikan penutupan transitif
paket yang menjadi dependensi build. Dapat diakses dengan bazel info
execution_root
di command line.
File
Lihat Artefak.
Hermetisitas
Build bersifat hermetik jika tidak ada pengaruh eksternal pada operasi build dan pengujiannya, yang membantu memastikan bahwa hasilnya bersifat deterministik dan benar. Misalnya, build hermetik biasanya tidak mengizinkan akses jaringan ke tindakan, membatasi akses ke input yang dideklarasikan, menggunakan stempel waktu dan zona waktu tetap, membatasi akses ke variabel lingkungan, dan menggunakan seed tetap untuk generator angka acak
Build inkremental
Build inkremental menggunakan kembali hasil build sebelumnya untuk mengurangi waktu build dan penggunaan resource. Pemeriksaan dan caching dependensi bertujuan untuk menghasilkan hasil yang benar untuk jenis build ini. Build inkremental adalah kebalikan dari build bersih.
Label
ID untuk target. Label yang sepenuhnya memenuhi syarat seperti
//path/to/package:target
terdiri dari //
untuk menandai direktori root ruang kerja, path/to/package
sebagai direktori yang berisi file BUILD
yang mendeklarasikan target, dan :target
sebagai nama target
yang dideklarasikan dalam file BUILD
yang disebutkan di atas. Mungkin juga diawali dengan
@my_repository//<..>
untuk menunjukkan bahwa target dideklarasikan dalam repositori
eksternal bernama my_repository
.
Fase pemuatan
Fase pertama build saat Bazel mem-parse file WORKSPACE
, BUILD
, dan .bzl
untuk membuat paket. Makro dan fungsi
tertentu seperti glob()
dievaluasi dalam fase ini. Diselingi dengan fase kedua pembangunan, yaitu fase analisis, untuk membangun grafik target.
Macro
Mekanisme untuk menyusun beberapa deklarasi target rule bersama-sama dalam
satu fungsi Starlark. Memungkinkan penggunaan kembali pola deklarasi aturan umum di seluruh file BUILD
. Diperluas ke deklarasi target aturan yang mendasarinya
selama fase pemuatan.
Lihat juga: Dokumentasi makro
Mnemonik
String singkat yang dapat dibaca manusia yang dipilih oleh penulis aturan untuk memahami dengan cepat
apa yang dilakukan oleh tindakan dalam aturan. Mnemonic dapat digunakan sebagai
ID untuk pilihan strategi kemunculan. Beberapa contoh mnemonik tindakan
adalah Javac
dari aturan Java, CppCompile
dari aturan C++, dan
AndroidManifestMerger
dari aturan Android.
Aturan native
Aturan yang disertakan dalam Bazel dan diimplementasikan di Java. Aturan tersebut
muncul dalam file .bzl
sebagai fungsi dalam modul bawaan (misalnya, native.cc_library
atau native.java_library
). Aturan yang ditentukan pengguna
(non-bawaan) dibuat menggunakan Starlark.
Basis output
Direktori khusus ruang kerja untuk menyimpan file output Bazel. Digunakan untuk memisahkan output dari hierarki sumber ruang kerja. Berada di output user root.
Grup output
Grup file yang diharapkan akan dibuat saat Bazel selesai membuat target. Aturan menempatkan output biasanya dalam "grup output default"
(misalnya, file .jar
dari java_library
, .a
, dan .so
untuk target cc_library
). Grup output default adalah grup output yang
artefaknya dibuat saat target diminta di command line.
Aturan dapat menentukan lebih banyak grup output bernama yang dapat ditentukan secara eksplisit dalam
file BUILD
(aturan filegroup
) atau command line
(flag --output_groups
).
Output root pengguna
Direktori khusus pengguna untuk menyimpan output Bazel. Nama direktori berasal dari nama pengguna sistem pengguna. Mencegah konflik file output jika beberapa pengguna membangun project yang sama di sistem secara bersamaan. Berisi subdirektori yang sesuai dengan output build ruang kerja individual, yang juga dikenal sebagai dasar output.
Paket
Kumpulan target yang ditentukan oleh file BUILD
. Nama
paket adalah jalur file BUILD
relatif terhadap root ruang kerja. Paket dapat berisi subpaket, atau subdirektori yang berisi file BUILD
, sehingga membentuk hierarki paket.
Grup paket
Target yang mewakili sekumpulan paket. Sering digunakan dalam nilai atribut visibility
.
Platform
"Jenis mesin" yang terlibat dalam build. Ini mencakup mesin tempat Bazel berjalan (platform "host"), mesin tempat alat build dijalankan (platform "exec"), dan mesin tempat target dibangun (platform "target").
Penyedia
Skema yang menjelaskan unit informasi yang akan diteruskan antara
target aturan di sepanjang hubungan dependensi. Biasanya, file ini
berisi informasi seperti opsi compiler, file output atau sumber transitif,
dan metadata build. Sering digunakan bersama dengan depset untuk menyimpan data transitif yang terakumulasi secara efisien. Contoh penyedia bawaan
adalah DefaultInfo
.
Lihat juga: Dokumentasi penyedia
Kueri (konsep)
Proses menganalisis grafik build untuk memahami properti target dan struktur dependensi. Bazel mendukung tiga varian kueri: query, cquery, dan aquery.
query (perintah)
Alat kueri yang beroperasi di atas grafik target pasca-pemuatan
fase build. Ini relatif cepat,
tetapi tidak dapat menganalisis efek select()
, flag build,
artefak, atau tindakan build.
Lihat juga: Cara membuat kueri, Referensi kueri
Cache repositori
Cache file yang dapat dialamatkan konten bersama yang didownload oleh Bazel untuk build, dapat dibagikan di seluruh ruang kerja. Mengaktifkan build offline setelah download awal. Umumnya digunakan untuk meng-cache file yang didownload melalui aturan repositori seperti http_archive
dan API aturan repositori seperti repository_ctx.download
. File di-cache hanya jika checksum SHA-256-nya
ditentukan untuk download.
Reproduksibilitas
Properti build atau pengujian yang serangkaian input ke build atau pengujian akan selalu menghasilkan serangkaian output yang sama setiap saat, terlepas dari waktu, metode, atau lingkungan. Perhatikan bahwa hal ini tidak berarti bahwa outputnya benar atau output yang diinginkan.
Aturan
Skema untuk menentukan target aturan dalam file BUILD
, seperti
cc_library
. Dari perspektif penulis file BUILD
, aturan terdiri dari serangkaian atribut dan logika kotak hitam. Logika ini memberi tahu
target aturan cara menghasilkan artefak output dan meneruskan informasi ke
target aturan lainnya. Dari perspektif penulis .bzl
, aturan adalah cara utama untuk memperluas Bazel guna mendukung bahasa pemrograman dan lingkungan baru.
Aturan di-instansiasi untuk menghasilkan target aturan dalam fase pemuatan. Dalam aturan fase analisis, target mengirimkan informasi ke dependensi hilirnya dalam bentuk penyedia, dan mendaftarkan tindakan yang menjelaskan cara membuat artefak outputnya. Tindakan ini dijalankan dalam fase eksekusi.
Lihat juga: Dokumentasi aturan
Target aturan
Target yang merupakan instance aturan. Berbeda dengan target file dan grup paket. Jangan sampai tertukar dengan aturan.
Runfiles
Dependensi runtime target yang dapat dieksekusi. Biasanya, file yang dapat dieksekusi adalah output yang dapat dieksekusi dari aturan pengujian, dan file yang dapat dijalankan adalah dependensi data runtime pengujian. Sebelum pemanggilan file yang dapat dieksekusi (selama pengujian bazel), Bazel menyiapkan hierarki runfile bersama file yang dapat dieksekusi untuk pengujian sesuai dengan struktur direktori sumbernya.
Lihat juga: Dokumentasi file yang dapat dijalankan
Sandboxing
Teknik untuk mengisolasi tindakan yang sedang berjalan di dalam root eksekusi yang dibatasi dan sementara, sehingga membantu memastikan bahwa tindakan tersebut tidak membaca input yang tidak dideklarasikan atau menulis output yang tidak dideklarasikan. Sandbox sangat meningkatkan hermetisitas, tetapi biasanya memiliki biaya performa, dan memerlukan dukungan dari sistem operasi. Biaya performa bergantung pada platform. Di Linux, hal ini tidak signifikan, tetapi di macOS, hal ini dapat membuat sandbox tidak dapat digunakan.
Skyframe
Skyframe adalah framework evaluasi paralel, fungsional, dan inkremental inti Bazel.
Pengecapan
Fitur untuk menyematkan informasi tambahan ke dalam
artefak yang dibuat Bazel. Misalnya, ini dapat digunakan untuk kontrol sumber, waktu build, dan informasi terkait ruang kerja atau lingkungan lainnya untuk build rilis.
Aktifkan melalui flag --workspace_status_command
dan aturan yang
mendukung atribut stempel.
Starlark
Bahasa ekstensi untuk menulis aturan dan makro. Subkumpulan Python yang dibatasi (secara sintaksis dan tata bahasa) yang ditujukan untuk tujuan konfigurasi, dan untuk performa yang lebih baik. Menggunakan ekstensi .bzl
file. File BUILD
menggunakan Starlark versi yang lebih
terbatas (seperti tidak ada definisi fungsi def
), yang sebelumnya
dikenal sebagai Skylark.
Lihat juga: Dokumentasi bahasa Starlark
Tanda startup
Kumpulan tanda yang ditentukan antara bazel
dan perintah,
misalnya, build bazel --host_jvm_debug
. Flag ini mengubah
konfigurasi server Bazel, sehingga setiap modifikasi pada
flag startup akan menyebabkan server dimulai ulang. Flag startup tidak spesifik untuk perintah apa pun.
Target
Objek yang ditentukan dalam file BUILD
dan diidentifikasi oleh
label. Target mewakili unit ruang kerja yang dapat dibangun dari perspektif pengguna akhir.
Target yang dideklarasikan dengan membuat instance aturan disebut target
aturan. Bergantung pada aturan, ini dapat dijalankan (seperti
cc_binary
) atau dapat diuji (seperti cc_test
). Target aturan biasanya bergantung pada
target lain melalui atribut-nya (seperti deps
); dependensi ini
membentuk dasar grafik target.
Selain target aturan, ada juga target file dan target grup paket. Target file sesuai dengan artefak yang dirujuk dalam file BUILD
. Sebagai kasus khusus, file BUILD
dari paket apa pun
selalu dianggap sebagai target file sumber dalam paket tersebut.
Target ditemukan selama fase pemuatan. Selama fase analisis, target dikaitkan dengan konfigurasi build untuk membentuk target yang dikonfigurasi.
Grafik target
Grafik dalam memori target dan dependensinya. Dihasilkan selama fase pemuatan dan digunakan sebagai input untuk fase analisis.
Pola target
Cara untuk menentukan grup target di command line. Pola yang umum digunakan adalah :all
(semua target aturan), :*
(semua target aturan + file),
...
(paket saat ini dan semua subpaket secara rekursif). Dapat digunakan
dalam kombinasi, misalnya, //...:*
berarti semua target aturan dan file di semua
paket secara rekursif dari root workspace.
Pengujian
Target aturan dibuat dari aturan pengujian, sehingga berisi dapat dieksekusi pengujian. Kode kembalian nol dari penyelesaian file yang dapat dieksekusi menunjukkan keberhasilan pengujian. Kontrak persis antara Bazel dan pengujian (seperti variabel lingkungan pengujian, metode pengumpulan hasil pengujian) ditentukan dalam Ensiklopedia Pengujian.
Toolchain
Serangkaian alat untuk membuat output untuk suatu bahasa. Biasanya, toolchain mencakup compiler, linker, interpreter, dan/atau linter. Toolchain juga dapat bervariasi menurut platform, yaitu komponen toolchain compiler Unix dapat berbeda untuk varian Windows, meskipun toolchain tersebut untuk bahasa yang sama. Memilih toolchain yang tepat untuk platform dikenal sebagai penyelesaian toolchain.
Target tingkat teratas
Target build adalah tingkat teratas jika diminta di command
line Bazel. Misalnya, jika //:foo
bergantung pada //:bar
, dan bazel build //:foo
dipanggil, maka untuk build ini, //:foo
adalah tingkat teratas, dan //:bar
bukan tingkat teratas, meskipun kedua target harus dibangun. Perbedaan penting
antara target tingkat teratas dan non-tingkat teratas adalah bahwa flag
perintah yang ditetapkan di command line Bazel (atau melalui
.bazelrc) akan menetapkan konfigurasi untuk target
tingkat teratas, tetapi dapat diubah oleh transisi untuk target
non-tingkat teratas.
Transisi
Pemetaan status konfigurasi dari satu nilai ke nilai lainnya. Memungkinkan target dalam grafik build memiliki konfigurasi yang berbeda, meskipun di-instansiasi dari aturan yang sama. Penggunaan transisi yang umum adalah dengan transisi split, di mana bagian tertentu dari grafik target di-fork dengan konfigurasi yang berbeda untuk setiap fork. Misalnya, seseorang dapat membuat APK Android dengan biner native yang dikompilasi untuk ARM dan x86 menggunakan transisi pemisahan dalam satu build.
Lihat juga: Transisi yang ditentukan pengguna
Artefak pohon
Artefak yang merepresentasikan kumpulan file. Karena file ini sendiri bukan artefak, tindakan yang beroperasi pada file tersebut harus mendaftarkan artefak hierarki sebagai input atau outputnya.
Visibilitas
Salah satu dari dua mekanisme untuk mencegah dependensi yang tidak diinginkan dalam sistem build:
visibilitas target untuk mengontrol apakah target dapat diandalkan
oleh target lain; dan visibilitas pemuatan untuk mengontrol apakah file BUILD
atau .bzl
dapat memuat file .bzl
tertentu. Tanpa konteks, biasanya
"visibilitas" mengacu pada visibilitas target.
Lihat juga: Dokumentasi visibilitas
Ruang kerja
Direktori yang berisi file WORKSPACE
dan kode sumber untuk software yang ingin Anda buat. Label yang diawali dengan //
bersifat relatif terhadap direktori
ruang kerja.
File RUANG KERJA
Menentukan direktori sebagai ruang kerja. File dapat kosong, meskipun biasanya berisi deklarasi repositori eksternal untuk mengambil dependensi tambahan dari jaringan atau sistem file lokal.