Aturan
proto_lang_toolchain
Lihat sumber aturanproto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, output_files, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
Jika menggunakan Bazel, muat aturan dari https://github.com/bazelbuild/rules_proto.
Menentukan cara aturan LANG_proto_library (misalnya, java_proto_library) harus memanggil
proto-compiler.
Beberapa aturan LANG_proto_library memungkinkan penentuan toolchain yang akan digunakan menggunakan tanda command line;
lihat dokumentasinya.
Biasanya Anda tidak boleh menulis aturan semacam itu kecuali jika Anda ingin menyetel compiler Java.
Tidak ada compiler. Proto-compiler diambil dari aturan proto_library yang kita lampirkan. Nilai ini diteruskan sebagai tanda command line ke Blaze.
Beberapa fitur memerlukan pemanggilan proto-compiler pada aturan proto_library itu sendiri.
Sebaiknya terapkan compiler yang digunakan LANG_proto_library sama dengan yang digunakan
proto_library.
Contoh
Contoh sederhananya adalah:
proto_lang_toolchain(
    name = "javalite_toolchain",
    command_line = "--javalite_out=shared,immutable:$(OUT)",
    plugin = ":javalite_plugin",
    runtime = ":protobuf_lite",
)
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. | 
| blacklisted_protos | Daftar label; defaultnya adalah  srcsdariblacklisted_protos.
        Ini digunakan untuk file .proto yang sudah ditautkan ke runtime proto, sepertiany.proto. | 
| command_line | String; wajibNilai ini akan diteruskan ke proto-compiler untuk menghasilkan kode. Hanya sertakan bagian yang khusus untuk generator/plugin kode ini (misalnya, jangan sertakan parameter -I) 
 | 
| mnemonic | String; default-nya adalah  | 
| output_files | String; default-nya adalah  $(OUT)dalamcommand_linediformat, baik berdasarkan
        jalur ke satu file atau direktori output jika ada beberapa file.
        Nilai yang mungkin adalah: "single", "multiple". | 
| plugin | Label; defaultnya adalah  --plugin=protoc-gen-PLUGIN=<executable>. | 
| plugin_format_flag | String; default-nya adalah  --plugin=protoc-gen-PLUGIN=<executable>. | 
| progress_message | String; default-nya adalah  | 
| proto_compiler | Label; defaultnya adalah  | 
| runtime | Label; defaultnya adalah  | 
proto_library
Lihat sumber aturanproto_library(name, deps, srcs, data, allow_exports, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, import_prefix, licenses, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, visibility)
Tidak digunakan lagi. Sebagai gantinya, gunakan https://github.com/bazelbuild/rules_proto.
Gunakan proto_library untuk menentukan library buffer protokol
   yang dapat digunakan dari beberapa bahasa. proto_library dapat dicantumkan
   dalam klausul deps dari aturan yang didukung, seperti java_proto_library.
Saat dikompilasi di command line, proto_library membuat file bernama
   foo-descriptor-set.proto.bin, yang merupakan set deskriptor untuk
   pesan yang di-src oleh aturan. File adalah FileDescriptorSet yang diserialisasi, yang
   dijelaskan di
   
   https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Objek ini hanya berisi informasi tentang file .proto yang disebutkan langsung oleh
aturan proto_library; kumpulan set deskriptor transitif tersedia melalui
penyedia Starlark [ProtoInfo].transitive_descriptor_sets.
Lihat dokumentasi di ProtoInfo.java.
Organisasi kode yang direkomendasikan:
-  Satu aturan proto_libraryper file.proto.
-  File bernama foo.protoakan berada dalam aturan bernamafoo_proto, yang berada di paket yang sama.
-  [language]_proto_libraryyang membungkusproto_librarybernamafoo_protoharus dipanggilfoo_[language]_proto, dan berada di paket yang sama.
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  proto_librarylainnya yang menjadi dependensi target.proto_libraryhanya dapat bergantung pada targetproto_librarylainnya.
        Mungkin tidak bergantung pada library khusus bahasa. | 
| srcs | Daftar label; defaultnya adalah  .protodan.protodevelyang
        diproses untuk membuat target. Ini biasanya berupa daftar yang tidak kosong. Salah satu kasus penggunaan
        dengansrcsyang dapat kosong adalah alias-library. Ini adalah
        aturan proto_library yang memiliki satu atau beberapa proto_library lain dideps.
        Pola ini dapat digunakan untuk, misalnya, mengekspor API publik dengan nama persisten. | 
| allow_exports | Label; defaultnya adalah  | 
| exports | Daftar label; defaultnya adalah  | 
| import_prefix | String; default-nya adalah  Jika disetel, file sumber .proto dalam atribut  Awalan dalam atribut  | 
| strip_import_prefix | String; default-nya adalah  Jika ditetapkan, file sumber .proto dalam atribut  Jika berupa jalur relatif (tidak diawali dengan garis miring), jalur tersebut dianggap sebagai jalur relatif paket. Jika absolut, jalur ini dipahami sebagai jalur relatif repositori. Awalan dalam atribut  |