Aturan
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, toolchains, visibility)
Jika menggunakan Bazel, harap muat aturan dari https://github.com/bazelbuild/rules_proto.
Gunakan proto_library
untuk menentukan library buffering protokol yang
dapat digunakan dari beberapa bahasa. proto_library
mungkin dicantumkan
dalam klausa deps
dari aturan yang didukung, seperti
java_proto_library
.
Jika dikompilasi di command line, proto_library
akan membuat file
bernama foo-descriptor-set.proto.bin
, yang merupakan kumpulan deskriptor untuk
pesan aturan src. File ini adalah file
FileDescriptorSet
, yang dijelaskan di
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
File ini hanya berisi informasi tentang file .proto
secara langsung
disebutkan oleh aturan proto_library
; kumpulan model transitif
kumpulan deskripsi tersedia melalui
[ProtoInfo].transitive_descriptor_sets
Penyedia Starlark.
Lihat dokumentasi di proto_info.bzl
.
Pengaturan kode yang direkomendasikan:
- Satu aturan
proto_library
per.proto
file. - File bernama
foo.proto
akan berada dalam aturan bernamafoo_proto
, yang terletak di paket yang sama. [language]_proto_library
yang menggabungkanproto_library
yang bernamafoo_proto
harus disebutfoo_[language]_proto
, dan ditempatkan di paket yang sama.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; default adalah proto_library lain yang diandalkan target.
proto_library mungkin hanya bergantung pada proto_library
target. Ini mungkin tidak bergantung pada library bahasa tertentu.
|
srcs
|
Daftar label; default adalah .proto dan .protodevel yang
yang diproses untuk membuat target. Daftar ini biasanya tidak kosong. Satu kasus penggunaan
dengan srcs yang boleh kosong adalah library-alias. Ini adalah
aturan proto_library memiliki satu atau beberapa proto_library lain di deps .
Pola ini dapat digunakan, misalnya dan mengekspor api publik dengan nama persisten.
|
allow_exports
|
Label; default adalah |
exports
|
Daftar label; default adalah |
import_prefix
|
String; default-nya adalah Jika ditetapkan, file sumber .proto di atribut Awalan dalam atribut |
strip_import_prefix
|
String; default-nya adalah Jika ditetapkan, file sumber .proto di atribut Jika jalur relatif (tidak dimulai dengan garis miring), jalur itu akan diambil sebagai paket-relatif satu. Jika nilainya absolut, nilainya akan dipahami sebagai jalur relatif repositori. Awalan dalam atribut |
proto_lang_toolchain
Lihat sumber aturanproto_lang_toolchain(name, allowlist_different_package, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, plugin, plugin_format_flag, progress_message, protoc_minimal_do_not_use, restricted_to, runtime, tags, target_compatible_with, testonly, toolchain_type, toolchains, visibility)
Jika menggunakan Bazel, harap muat aturan dari https://github.com/bazelbuild/rules_proto.
Menentukan bagaimana aturan LANG_proto_library (mis., java_proto_library
) harus memanggil
proto-compiler.
Beberapa aturan LANG_proto_library mengizinkan penentuan toolchain yang akan digunakan menggunakan flag command line;
baca dokumentasi mereka.
Biasanya Anda tidak perlu menulis aturan seperti itu kecuali jika Anda ingin menyesuaikan compiler Java Anda.
Tidak ada compiler. proto-compiler diambil dari aturan proto_library yang kami lampirkan. Penting
diteruskan sebagai penanda
baris perintah ke Blaze.
Beberapa fitur mengharuskan proto-compiler dipanggil pada aturan proto_library itu sendiri.
Sebaiknya terapkan compiler yang digunakan LANG_proto_library sama dengan
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 diisi Nama unik untuk target ini. |
allowlist_different_package
|
Label; default adalah |
blacklisted_protos
|
Daftar label; default adalah srcs
blacklisted_protos .
Ini digunakan untuk file .proto yang sudah ditautkan ke runtime proto, seperti
any.proto .
|
command_line
|
String; wajib diisi Nilai ini akan diteruskan ke proto-compiler untuk membuat kode. Hanya sertakan bagian-bagiannya khusus untuk pembuat kode/plugin ini (misalnya, tidak menyertakan parameter -I)
|
mnemonic
|
String; default-nya adalah |
output_files
|
String; default-nya adalah $(OUT) di command_line , baik dengan
jalur ke satu file atau direktori {i>
output<i} jika ada beberapa file.
Nilai yang mungkin adalah: "single", "multiple".
|
plugin
|
Label; default adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; default-nya adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; default-nya adalah |
protoc_minimal_do_not_use
|
Label; default adalah |
runtime
|
Label; default adalah |
toolchain_type
|
Label; default adalah |