Sık Sorulan Sorular

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

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.