Uzantı yazmayla ilgili bazı yaygın sorunları ve soruları burada bulabilirsiniz.
Dosyam neden oluşturulmadı / işlemim neden hiç yürütülmedi?
Bazel, yalnızca istenen çıkış dosyalarını üretmek için gereken işlemleri yürütür.
İstediğiniz dosyada etiket varsa doğrudan bu etiketi isteyebilirsiniz:
bazel build //pkg:myfile.txt
.Dosya hedefin bir çıkış grubundaysa komut satırındaki çıkış grubunu ekleyin:
bazel build //pkg:mytarget --output_groups=foo
.Hedefiniz her gösterildiğinde dosyanın otomatik olarak oluşturulmasını varsa bunu kuralınızın varsayılan çıkışlarına eklemek için
DefaultInfo
sağlayıcısı döndürülmesi.
Daha fazla bilgi için Kurallar sayfasına göz atın.
Uygulama işlevim neden yürütülmüyor?
Bazel yalnızca derleme için istenen hedefleri analiz eder. Şunları yapmalısınız: komut satırında hedefe bir ad verin veya hedefi belirleyebilirsiniz.
İşlemim veya ikili programım yürütüldüğünde bir dosya eksik
1) Dosyanın işlem için giriş olarak kaydedildiğinden veya ve 2) yürütülmekte olan komut dosyası veya araç, dosyaya gerekir.
İşlemler için girişleri ctx.actions.*
işlevine ileterek bildirmeniz gerekir
dönüşüm oranını oluşturur. Dosya için doğru yol
File.path
.
İkili programlar (bazel run
veya bazel test
tarafından çalıştırılan yürütülebilir çıkışlar) için
komutuna dahil ederek), girişleri
runfiles. path
alanını kullanmak yerine,
File.short_path
; dosyanın dosyaya
ikili programın yürütüleceği Runfiles dizini.
Hangi dosyaların bazel build //pkg:mytarget
tarafından derlendiğini nasıl kontrol edebilirim?
DefaultInfo
sağlayıcısını şu işlemler için kullanabilirsiniz:
varsayılan çıkışları ayarlayın.
Nasıl program çalıştırabilirim veya derlememin parçası olarak G/Ç dosyası nasıl oluşturabilirim?
Araçlar, derlemenizin diğer kısımlarında olduğu gibi hedef olarak tanımlanabilir.
diğer hedeflerin oluşturulmasına yardımcı olmak için yürütme aşamasında
yürütülmesini sağlar. İşlem oluşturmak için
varsa ctx.actions.run
kullanın ve
aracını executable
parametresi olarak kullanabilirsiniz.
Yükleme ve analiz aşamaları sırasında araç çalıştırılamaz veya emin olun. Bu, araçların ve dosya içeriklerinin (BUILD ve .bzl dosyaları), hedef ve eylem grafiklerinin oluşturulma şeklini etkileyemez.
Hem yürütme aşamasından önce hem de bu aşamada aynı yapılandırılmış verilere erişmem gerekirse ne olur?
Yapılandırılmış verileri .bzl dosyası olarak biçimlendirebilirsiniz. Dosyayı load()
bu verilere yükleme ve analiz aşamalarında erişebilir. Bu mesajı bir giriş olarak iletebilir veya
Runfile'ı yürütme aşamasında bunlara ihtiyaç duyan işlemlere ve yürütülebilir dosyalara.
Starlark kodunu nasıl belgelemeliyim?
Kurallar ve kural özellikleri için bir doküman dizesi değişmez değeri (muhtemelen
üç tırnak içine alınmış) ekleyerek rule
veya attr.*()
öğesinin doc
parametresine ekleyin. Yardımcı için
fonksiyonlarını ve makrolarını kullanmak için,
burada bulabilirsiniz.
Kural uygulama işlevleri için genellikle kendi belge dizesi gerekli değildir.
Beklenen yerlerde dize değişmez değerleri kullanmak, araçlarını kullanarak belge çıkarmanızı sağlar. Dize olmayan standart yorumları kullanabilirsiniz. yardımcı olabileceği her yerde kullanın.