Reglas
proto_library
Ver el código fuente de la reglaproto_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)
Si usas Bazel, carga la regla desde . https://github.com/bazelbuild/rules_proto.
Usa proto_library
para definir bibliotecas de búferes de protocolo que
se pueden usar en varios idiomas. Es posible que aparezca un proto_library
en la cláusula deps
de las reglas admitidas, como
java_proto_library
Cuando se compila en la línea de comandos, un proto_library
crea un archivo
llamado foo-descriptor-set.proto.bin
, que es el conjunto de descriptores para
los mensajes que srcs de la regla. El archivo es de tipo serializado
FileDescriptorSet
, que se describe en
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Solo contiene información sobre los archivos .proto
directamente
mencionada por una regla proto_library
; la colección de modelos transitivos
de descriptores de Kubernetes está disponible mediante la API de
[ProtoInfo].transitive_descriptor_sets
Proveedor de Starlark.
Consulta la documentación en proto_info.bzl
.
Organización de código recomendada:
- Una regla
proto_library
por archivo.proto
. - Un archivo llamado
foo.proto
estará en una regla llamadafoo_proto
, que se encuentra en el mismo paquete. - Un
[language]_proto_library
que une unproto_library
llamadafoo_proto
debe llamarsefoo_[language]_proto
, y ubicarse en el mismo paquete.
Argumentos
Atributos | |
---|---|
name |
Nombre: obligatorio. Un nombre único para este destino. |
deps
|
Lista de etiquetas; el valor predeterminado es proto_library de las que depende el destino.
Un proto_library solo puede depender de otros proto_library .
objetivos. Es posible que no dependa de las bibliotecas específicas de un lenguaje.
|
srcs
|
Lista de etiquetas; el valor predeterminado es .proto y .protodevel que se
procesada para crear el destino. Por lo general, no está vacía. Un caso de uso
donde srcs puede estar vacío es una biblioteca de alias. Este es un
La regla proto_library tiene uno o más objetos proto_library en deps .
Este patrón puede usarse, p.ej., exportar una API pública con un nombre persistente.
|
allow_exports
|
Etiqueta; el valor predeterminado es |
exports
|
Lista de etiquetas; el valor predeterminado es |
import_prefix
|
String; el valor predeterminado es Cuando se establece, se asignan los archivos de origen .proto en el atributo Se quitó el prefijo del atributo |
strip_import_prefix
|
String; el valor predeterminado es Cuando se establece, se asignan los archivos de origen .proto en el atributo Si es una ruta de acceso relativa (que no comienza con una barra diagonal), se toma como una ruta de acceso uno. Si es una absoluta, se entiende como una ruta de acceso relativa de repositorio. El prefijo del atributo |
proto_lang_toolchain
Ver el código fuente de la reglaproto_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)
Si usas Bazel, carga la regla desde . https://github.com/bazelbuild/rules_proto.
Especifica cómo una regla LANG_proto_library (p.ej., java_proto_library
) deben invocar el
proto-compiler.
Algunas reglas LANG_proto_library permiten especificar qué cadena de herramientas utilizar mediante marcas de la línea de comandos.
consulta su documentación.
Por lo general, no debes escribir ese tipo de reglas, a menos que desees ajustar tu compilador de Java.
No hay compilador. El proto-compiler se toma de la regla proto_library a la que adjuntamos. Sí
pasado como una marca de línea de comandos a Blaze.
Varias funciones requieren que se invoque un proto-compiler en la misma regla proto_library.
Es beneficioso hacer que el compilador que usa LANG_proto_library sea el mismo.
proto_library
.
Ejemplos
Un ejemplo sencillo sería el siguiente:
proto_lang_toolchain(
name = "javalite_toolchain",
command_line = "--javalite_out=shared,immutable:$(OUT)",
plugin = ":javalite_plugin",
runtime = ":protobuf_lite",
)
Argumentos
Atributos | |
---|---|
name |
Nombre: obligatorio. Un nombre único para este destino. |
allowlist_different_package
|
Etiqueta; el valor predeterminado es |
blacklisted_protos
|
Lista de etiquetas; el valor predeterminado es srcs de
blacklisted_protos
Se usa para archivos .proto que ya están vinculados en entornos de ejecución proto, como
any.proto
|
command_line
|
String; obligatorio. Este valor se pasará a proto-compiler para generar el código. Solo incluye las partes específicas de este generador de código o complemento (p.ej., no incluyas los parámetros -I)
|
mnemonic
|
String; el valor predeterminado es |
output_files
|
String; el valor predeterminado es $(OUT) en command_line , ya sea mediante
una ruta a un solo archivo o directorio de salida en caso de varios archivos.
Los valores posibles son “single”, “multiple”.
|
plugin
|
Etiqueta; el valor predeterminado es --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; el valor predeterminado es --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; el valor predeterminado es |
protoc_minimal_do_not_use
|
Etiqueta; el valor predeterminado es |
runtime
|
Etiqueta; el valor predeterminado es |
toolchain_type
|
Etiqueta; el valor predeterminado es |