Tindakan
Perintah yang akan dijalankan selama build, misalnya, panggilan ke compiler yang menggunakan artefak sebagai input dan menghasilkan artefak lain sebagai output. Menyertakan 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 dibuat. Kunci cache dikenal sebagai kunci tindakan. Komponen inti untuk model inkrementalitas Bazel. Cache disimpan di direktori dasar output sehingga bertahan dari server Bazel yang dimulai ulang.
Grafik tindakan
Grafik dalam memori yang menampilkan tindakan dan artefak yang
dibaca dan dihasilkan oleh tindakan ini. Grafik ini dapat menyertakan artefak yang ada sebagai
file sumber (misalnya, dalam sistem file) serta artefak perantara/final yang dihasilkan
yang tidak disebutkan dalam file BUILD
. Dihasilkan
selama fase analisis dan digunakan selama fase
eksekusi.
Kueri grafik tindakan (kueri)
Alat kueri yang dapat membuat kueri melalui tindakan build. Hal ini memberikan kemampuan untuk menganalisis cara aturan build diterjemahkan ke dalam build pekerjaan sebenarnya.
Tombol tindakan
Kunci cache dari tindakan. Dihitung berdasarkan metadata tindakan, yang mungkin mencakup perintah yang akan dieksekusi dalam tindakan, flag compiler, lokasi library, atau header sistem, bergantung pada tindakannya. Memungkinkan Bazel untuk meng-cache atau membatalkan 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 fase saat implementasi
aturan dievaluasi.
Artefak
File sumber atau file yang dihasilkan. Juga dapat berupa direktori file, yang dikenal sebagai tree artefak.
Artefak dapat menjadi input untuk beberapa tindakan, tetapi hanya boleh dibuat oleh maksimum satu tindakan.
Artefak yang sesuai dengan target file dapat ditangani dengan label.
Aspek
Mekanisme aturan untuk membuat tindakan tambahan dalam dependensinya. Misalnya, jika target A bergantung pada B, seseorang dapat menerapkan aspek pada
A yang melintasi ke atas tepi dependensi ke B, dan menjalankan tindakan tambahan di B
untuk menghasilkan dan mengumpulkan file output tambahan. Tindakan tambahan ini
disimpan 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 analisis lint.
Lihat juga: Dokumentasi aspek
{i>Aspek-on-aspect<i}
Mekanisme komposisi di mana aspek dapat diterapkan pada hasil
aspek lain. Misalnya, aspek yang menghasilkan informasi untuk digunakan oleh
IDE dapat diterapkan di atas aspek yang menghasilkan file .java
dari
proto.
Agar A
aspek diterapkan di atas B
aspek, penyedia yang
diiklankan B
dalam atribut provides
-nya
harus cocok dengan yang dideklarasikan A
dalam atribut
required_aspect_providers
-nya.
Atribut
Parameter untuk aturan, 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.
{i>.bazelrc<i}
File konfigurasi Bazel digunakan untuk mengubah nilai default untuk flag
startup dan command flag, serta untuk menentukan grup
opsi umum yang kemudian dapat ditetapkan bersama di command line Bazel menggunakan
tanda --config
. Bazel dapat menggabungkan setelan dari beberapa file bazelrc
(seluruh sistem, per ruang kerja, per pengguna, atau dari lokasi kustom), dan
file bazelrc
juga dapat mengimpor setelan dari file bazelrc
lainnya.
Blaze
Versi internal Google Bazel. Sistem build utama Google untuk repositori mononya.
BUILD File
File BUILD
adalah file konfigurasi utama yang memberi tahu Bazel output software
apa saja yang akan di-build, dependensinya, dan cara mem-build-nya. Bazel
mengambil file BUILD
sebagai input dan menggunakannya untuk membuat grafik dependensi
dan memperoleh tindakan yang harus diselesaikan untuk membuat output software perantara
dan akhir. File BUILD
menandai direktori dan setiap subdirektori yang tidak
berisi file BUILD
sebagai paket, dan dapat berisi
target yang dibuat oleh aturan. File tersebut juga dapat diberi nama
BUILD.bazel
.
File BUILD.bazel
Lihat File BUILD
. Lebih diutamakan daripada file BUILD
dalam direktori yang sama.
{i>File<i} .bzl
File yang menentukan aturan, makro, dan konstanta yang ditulis dalam
Starlark. Kemudian, properti ini dapat diimpor ke dalam file BUILD
menggunakan fungsi load()
.
Membuat grafik
Grafik dependensi yang dibuat dan dilalui Bazel untuk menjalankan build. Mencakup node seperti target, target yang dikonfigurasi, tindakan, dan artefak. Build akan dianggap selesai jika semua artefak yang bergantung pada kumpulan target yang diminta diverifikasi sebagai yang terbaru.
Setelan build
Bagian konfigurasi yang ditentukan Starlark. Transitions dapat menetapkan setelan build untuk mengubah konfigurasi subgrafik. Jika diekspos kepada pengguna sebagai flag command line, juga dikenal sebagai flag build.
Build bersih
Build yang tidak menggunakan hasil build sebelumnya. Build ini biasanya lebih lambat daripada build inkremental, tetapi umumnya dianggap lebih benar. Bazel menjamin build clean dan inkremental selalu benar.
Model klien-server
Klien command line bazel
secara otomatis memulai server latar belakang di
komputer lokal untuk menjalankan perintah Bazel. Server tetap ada selama
perintah, tetapi secara otomatis berhenti setelah tidak aktif selama beberapa waktu (atau secara eksplisit melalui
penonaktifan bazel). Memisahkan Bazel menjadi server dan klien akan membantu mengamortisasi waktu startup
JVM dan mendukung build inkremental
yang lebih cepat karena grafik tindakan tetap berada dalam memori di seluruh perintah.
Perintah
Digunakan pada command line untuk memanggil fungsi Bazel yang berbeda, seperti bazel
build
, bazel test
, bazel run
, dan bazel query
.
Tanda perintah
Sekumpulan flag khusus untuk perintah. Tanda perintah ditentukan setelah perintah (bazel build <command flags>
). Tanda dapat diterapkan untuk satu atau beberapa perintah. Misalnya, --configure
adalah tanda 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 grafik dalam memori
dan memulai ulang fase analisis.
Konfigurasi
Informasi di luar definisi aturan yang memengaruhi cara aturan menghasilkan tindakan. Setiap build memiliki setidaknya satu konfigurasi yang menentukan platform target, variabel lingkungan tindakan, dan tanda build command line. Transition dapat membuat konfigurasi tambahan, seperti untuk alat host atau kompilasi silang.
Lihat juga: Konfigurasi
Pemangkasan konfigurasi
Proses yang hanya menyertakan bagian-bagian konfigurasi
yang benar-benar dibutuhkan target. Misalnya, jika Anda mem-build biner Java //:j
dengan dependensi C++ //:c
, maka tidak sia-sia untuk menyertakan nilai --javacopt
dalam konfigurasi //:c
karena mengubah --javacopt
seharusnya tidak akan merusak kemampuan cache build C++.
Kueri yang dikonfigurasi (cquery)
Alat kueri yang membuat kueri melalui target yang dikonfigurasi (setelah fase analisis selesai). Artinya, select()
dan flag build (seperti
--platforms
) ditampilkan secara akurat dalam hasil.
Lihat juga: dokumentasi cquery
Target yang dikonfigurasi
Hasil evaluasi target dengan konfigurasi. Fase analisis menghasilkan
hal ini dengan menggabungkan opsi build dengan target yang perlu dibuat.
Misalnya, jika //:foo
mem-build untuk dua arsitektur yang berbeda dalam build yang sama, maka memiliki dua target yang telah dikonfigurasi: <//:foo, x86>
dan <//:foo, arm>
.
Ketepatan
Build benar jika outputnya mencerminkan status input transitifnya dengan tepat. Untuk mencapai build yang tepat, Bazel berusaha menjadi hermetic, dapat direproduksi, serta membuat analisis build dan eksekusi tindakan deterministik.
Dependensi
Tepi terarah antara dua target. //:foo
target memiliki dependensi
target pada target //:bar
jika nilai atribut //:foo
berisi
referensi ke //:bar
. //:foo
memiliki dependensi tindakan pada //:bar
jika
tindakan dalam //:foo
bergantung pada artefak input yang dibuat oleh
tindakan dalam //:bar
.
Depset
Struktur data untuk mengumpulkan data tentang dependensi transitif. Dioptimalkan sehingga penggabungan dependensi menghemat waktu dan ruang, karena biasanya memiliki depset yang sangat besar (ratusan ribu file). Diimplementasikan untuk merujuk secara rekursif ke dependensi lainnya demi alasan efisiensi ruang. Implementasi aturan tidak boleh "meratakan" dependensi dengan mengonversinya menjadi daftar, kecuali jika aturan berada di tingkat teratas grafik build. Meratakan dependensi besar akan menimbulkan konsumsi memori yang besar. Juga dikenal sebagai set bertingkat dalam implementasi internal Bazel.
Lihat juga: Dokumentasi Depset
Cache disk
Penyimpanan blob lokal di dalam disk untuk fitur penyimpanan cache jarak jauh. Dapat digunakan bersama dengan blob store jarak jauh yang sebenarnya.
Distdir
Direktori hanya baca yang berisi file yang akan diambil Bazel dari internet menggunakan aturan repositori. Memungkinkan build dijalankan sepenuhnya secara offline.
Eksekusi dinamis
Strategi eksekusi yang memilih antara eksekusi lokal dan jarak jauh berdasarkan berbagai heuristik, dan menggunakan hasil eksekusi dari metode yang lebih cepat berhasil. Tindakan tertentu dijalankan lebih cepat secara lokal (misalnya, penautan) dan lainnya lebih cepat dari jarak jauh (misalnya, kompilasi yang sangat dapat diparalelkan). Strategi eksekusi dinamis dapat memberikan waktu build inkremental dan bersih sebaik mungkin.
Fase eksekusi
Fase ketiga build. Menjalankan tindakan dalam grafik tindakan yang dibuat selama fase analisis. Tindakan ini memanggil file yang dapat dieksekusi (compiler, skrip) untuk membaca dan menulis artefak. Strategi Spawn mengontrol cara tindakan ini dieksekusi: secara lokal, jarak jauh, dinamis, di-sandbox, docker, dan sebagainya.
Root eksekusi
Direktori dalam direktori output base ruang kerja tempat tindakan lokal dijalankan dalam build non-sandbox. Konten direktori sebagian besar merupakan symlink
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 forest symlink dari direktori yang mewakili penutupan
transitif paket yang menjadi tempat bergantung build. Dapat diakses dengan bazel info
execution_root
pada command line.
File
Lihat Artefak.
Hermetisitas
Build bersifat hermetis jika tidak ada pengaruh eksternal pada operasi build dan pengujiannya, yang membantu memastikan hasilnya deterministik dan benar. Misalnya, build hermetic biasanya melarang akses jaringan ke tindakan, membatasi akses ke input yang dideklarasikan, menggunakan stempel waktu tetap dan zona waktu, 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 dependensi dan cache bertujuan untuk memberikan hasil yang benar untuk jenis build ini. Build inkremental adalah kebalikan dari clean build.
Label
ID untuk target. Label yang sepenuhnya memenuhi syarat seperti
//path/to/package:target
terdiri dari //
untuk menandai direktori utama
ruang kerja, path/to/package
sebagai direktori yang berisi file
BUILD
yang mendeklarasikan target, dan :target
sebagai nama target
yang dideklarasikan dalam file BUILD
tersebut. Juga dapat diawali dengan
@my_repository//<..>
untuk menunjukkan bahwa target dideklarasikan dalam ]repositori
eksternal] bernama my_repository
.
Memuat fase
Fase pertama build saat Bazel mengurai WORKSPACE
, BUILD
, dan .bzl
file untuk membuat paket. Makro dan fungsi
tertentu seperti glob()
dievaluasi dalam fase ini. Disisipkan dengan fase
kedua build, fase analisis, untuk membuat grafik
target.
Macro
Mekanisme untuk menyusun beberapa deklarasi target aturan 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 tindakan dalam aturan. Mnemonik dapat digunakan sebagai
ID untuk pilihan strategi spawn. 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 native (misalnya, native.cc_library
atau native.java_library
). Aturan yang ditentukan pengguna
(non-native) dibuat menggunakan Starlark.
Basis output
Direktori khusus workspace untuk menyimpan file output Bazel. Digunakan untuk memisahkan output dari hierarki sumber workspace. Terletak di root pengguna output.
Grup output
Grup file yang diharapkan akan di-build saat Bazel selesai mem-build
target. Aturan menempatkan output yang biasa mereka 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 pada command line.
Aturan dapat menentukan lebih banyak grup output bernama yang dapat ditentukan secara eksplisit dalam
file BUILD
(aturan filegroup
) atau command line
(tanda --output_groups
).
Root pengguna output
Direktori khusus pengguna untuk menyimpan {i>output<i} Bazel. Nama direktori diambil dari nama pengguna sistem milik pengguna. Mencegah konflik file output jika beberapa pengguna mem-build project yang sama di sistem secara bersamaan. Berisi subdirektori yang sesuai dengan output build dari setiap ruang kerja, yang juga dikenal sebagai basis output.
Package (Paket)
Kumpulan target yang ditentukan oleh file BUILD
. Nama
paket adalah jalur file BUILD
yang relatif terhadap root ruang kerja. Paket
dapat berisi subpaket, atau subdirektori yang berisi file BUILD
,
sehingga membentuk hierarki paket.
Grup paket
Target yang mewakili kumpulan paket. Sering digunakan dalam nilai atribut
visibility
.
Platform
"Jenis mesin" yang terlibat dalam build. Hal ini mencakup mesin yang dijalankan Bazel (platform "host"), alat build mesin dijalankan di platform (platform "exec"), dan target mesin dibuat untuk ("platform target").
Penyedia
Skema yang menjelaskan unit informasi yang akan diteruskan di antara target aturan di sepanjang hubungan dependensi. Biasanya
berisi informasi seperti opsi compiler, file sumber atau output transitif,
dan metadata build. Sering digunakan bersama dengan dependensi untuk
menyimpan data transitif akumulasi secara efisien. Contoh penyedia bawaan
adalah DefaultInfo
.
Lihat juga: Dokumentasi penyedia
Kueri (konsep)
Proses analisis grafik build untuk memahami properti target dan struktur dependensi. Bazel mendukung tiga varian kueri: query, cquery, dan aquery.
kueri (perintah)
Alat kueri yang beroperasi pada grafik target
pasca-pemuatan build. Proses ini relatif cepat,
tetapi tidak dapat menganalisis efek select()
, flag build,
artefak, atau tindakan build.
Lihat juga: Petunjuk kueri, Referensi kueri
Cache repositori
Cache file bersama yang dapat diberi alamat konten dan didownload oleh Bazel untuk build,
yang 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 hanya akan di-cache jika checksum SHA-256
ditentukan untuk download.
Kemampuan reproduksi
Properti build atau pengujian bahwa serangkaian input pada build atau pengujian akan selalu menghasilkan kumpulan output yang sama setiap saat, terlepas dari waktu, metode, atau lingkungannya. Perhatikan bahwa hal ini tidak selalu berarti bahwa output 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 lain. Dari perspektif penulis .bzl
, aturan adalah cara utama untuk memperluas Bazel guna mendukung lingkungan dan bahasa pemrograman baru.
Instance aturan dibuat untuk menghasilkan target aturan dalam fase pemuatan. Pada fase analisis, target aturan mengomunikasikan informasi ke dependensi downstream-nya dalam bentuk penyedia, dan mendaftarkan tindakan yang menjelaskan cara membuat artefak output. Tindakan ini dijalankan di fase eksekusi.
Lihat juga: Dokumentasi aturan
Target aturan
Target yang merupakan instance aturan. Berbeda dengan target file dan grup paket. Harap bedakan dengan aturan.
Runfile
Dependensi runtime dari target yang dapat dieksekusi. Biasanya, file yang dapat dieksekusi adalah output yang dapat dieksekusi dari aturan pengujian, dan runfile-nya adalah dependensi data runtime pengujian. Sebelum memanggil file yang dapat dieksekusi (selama pengujian bazel), Bazel akan menyiapkan hierarki runfile bersama pengujian yang dapat dieksekusi sesuai dengan struktur direktori sumbernya.
Lihat juga: Dokumentasi Runfiles
Sandboxing
Teknik untuk mengisolasi tindakan yang sedang berjalan di dalam root eksekusi yang dibatasi dan sementara, membantu memastikan bahwa input yang tidak dideklarasikan tidak membaca input yang tidak dideklarasikan atau menulis output yang tidak dideklarasikan. Sandboxing sangat meningkatkan hermetisitas, tetapi biasanya menimbulkan biaya performa, dan memerlukan dukungan dari sistem operasi. Biaya performa bergantung pada platform. Di Linux, ini tidak signifikan, tetapi di macOS dapat membuat sandbox tidak dapat digunakan.
Bingkai Ruang Angkasa
Skyframe adalah framework evaluasi paralel, fungsional, dan inkremental inti dari Bazel.
Pengecapan
Fitur untuk menyematkan informasi tambahan ke dalam artefak
yang dibuat Bazel. Misalnya, atribut ini dapat digunakan untuk kontrol sumber, waktu
build, dan ruang kerja lainnya atau informasi terkait lingkungan untuk build rilis.
Aktifkan melalui tanda dan aturan --workspace_status_command
yang
mendukung atribut stempel.
Starlark
Bahasa ekstensi untuk menulis aturan dan makro. Subset Python terbatas (secara sintaksis dan tata bahasa) yang ditujukan untuk
tujuan konfigurasi dan untuk performa yang lebih baik. Menggunakan ekstensi file .bzl
. File BUILD
menggunakan versi Starlark
yang lebih terbatas (seperti tanpa definisi fungsi def
), yang sebelumnya
dikenal sebagai Skylark.
Lihat juga: Dokumentasi bahasa Starlark
Tanda startup
Kumpulan flag yang ditentukan antara bazel
dan perintah,
misalnya, build bazel --host_jvm_debug
. Tanda ini akan mengubah
konfigurasi server Bazel, sehingga setiap perubahan pada
tanda memulai akan menyebabkan server dimulai ulang. Flag startup tidak khusus untuk
perintah apa pun.
Target
Objek yang ditentukan dalam file BUILD
dan diidentifikasi dengan label. Target merepresentasikan unit ruang kerja yang dapat dibangun dari perspektif pengguna akhir.
Target yang dideklarasikan dengan membuat instance aturan disebut target
aturan. Bergantung pada aturan, properti ini dapat dijalankan (seperti cc_binary
) atau dapat diuji (seperti cc_test
). Target aturan biasanya bergantung pada target lain melalui atributnya (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 direferensikan
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 aturan + target file), ...
(paket saat ini dan semua sub-paket secara berulang). Dapat digunakan dalam kombinasi, misalnya, //...:*
berarti semua target aturan dan file dalam semua paket secara rekursif dari root ruang kerja.
Pengujian
Target aturan yang dibuat instance-nya dari aturan pengujian, sehingga berisi file pengujian yang dapat dieksekusi. Kode pengembalian nol dari penyelesaian file yang dapat dieksekusi menunjukkan keberhasilan pengujian. Kontrak pasti antara Bazel dan pengujian (seperti variabel lingkungan pengujian, metode pengumpulan hasil pengujian) ditentukan dalam Ensiklopedia Pengujian.
Toolchain
Serangkaian alat untuk mem-build output bahasa. Biasanya, toolchain menyertakan compiler, penaut, penafsir, atau/dan linter. Toolchain juga dapat bervariasi berdasarkan platform. Artinya, komponen toolchain compiler Unix dapat berbeda untuk varian Windows, meskipun toolchain tersebut menggunakan bahasa yang sama. Memilih Toolchain yang tepat untuk platform ini dikenal sebagai resolusi toolchain.
Target tingkat atas
Target build berada di level teratas jika diminta dengan command
line Bazel. Misalnya, jika //:foo
bergantung pada //:bar
, dan bazel build //:foo
dipanggil, maka untuk build ini, //:foo
adalah level teratas, dan //:bar
bukan level teratas, meskipun kedua target harus di-build. Perbedaan penting
antara target level atas dan non-level atas adalah tanda
perintah yang ditetapkan pada command line Bazel (atau melalui
.bazelrc) akan menetapkan konfigurasi untuk target
level atas, tetapi dapat dimodifikasi dengan transisi untuk target
non-level atas.
Transition
Pemetaan status konfigurasi dari satu nilai ke nilai lainnya. Mengaktifkan target di grafik build agar memiliki konfigurasi yang berbeda, meskipun instance tersebut dibuat dari aturan yang sama. Penggunaan transisi yang umum adalah pada transisi terpisah, ketika bagian tertentu dari grafik target diambil dengan konfigurasi yang berbeda untuk setiap fork. Misalnya, seseorang dapat mem-build APK Android dengan biner native yang dikompilasi untuk ARM dan x86 menggunakan transisi terpisah dalam satu build.
Lihat juga: Transisi yang ditentukan pengguna
Artefak pohon
Artefak yang mewakili kumpulan file. Karena file ini bukan merupakan artefak, tindakan yang beroperasi pada file tersebut harus mendaftarkan artefak hierarki sebagai input atau output-nya.
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
Workspace
Direktori yang berisi file WORKSPACE
dan kode sumber untuk software yang ingin Anda
build. Label yang dimulai dengan //
akan bersifat relatif terhadap direktori ruang kerja.
File WORKSPACE
Mendefinisikan direktori menjadi ruang kerja. File dapat kosong, meskipun biasanya berisi deklarasi repositori eksternal untuk mengambil dependensi tambahan dari sistem file lokal atau jaringan.