Información de JavaPlugin

Un proveedor que encapsula información sobre los complementos de Java.

Por el momento, el único tipo de complementos compatibles son los procesadores de anotaciones.

Miembros

JavaPluginInfo

JavaPluginInfo JavaPluginInfo(runtime_deps, *, processor_class, data=[], generates_api=False)

El constructor JavaPluginInfo

Parámetros

Parámetro Descripción
runtime_deps sequence of JavaInfos (obligatorio)
La biblioteca que contiene un procesador de anotaciones.
processor_class string; or None (obligatorio)
El nombre de clase completamente calificado que el compilador de Java usa como punto de entrada al procesador de anotaciones.
data sequence of Files; or depset of Files; default = []
Son los archivos que necesita este procesador de anotaciones durante la ejecución.
generates_api default = False
Se establece como verdadero cuando este procesador de anotaciones genera código de API.

Este procesador de anotaciones se aplica a un objetivo de Java antes de producir sus archivos jar de encabezado (que contiene firmas de métodos). Cuando no hay complementos de API presentes, se generan los archivos jar de encabezado desde las fuentes, lo que reduce la ruta crítica.

ADVERTENCIA: Este parámetro afecta el rendimiento de la compilación. Úsalo solo si es necesario.

api_generating_plugins

JavaPluginData JavaPluginInfo.api_generating_plugins

Muestra datos sobre los complementos que generan API definidos o exportados por este destino.

Esos procesadores de anotaciones se aplican a un destino Java antes de producir sus archivos jar de encabezado (que contienen firmas de métodos). Cuando no hay complementos de API, se generan los archivos jar de encabezado desde las fuentes, lo que reduce la ruta crítica.

api_generating_plugins es un subconjunto de plugins.

java_outputs

list JavaPluginInfo.java_outputs

Muestra información sobre los resultados de este objetivo similar a Java/Java.

Complementos

JavaPluginData JavaPluginInfo.plugins

Muestra datos sobre todos los complementos que debe aplicar un destino de consumo.

Por lo general, es un java_plugin o un java_library que exporta uno o más complementos.

Un java_library ejecuta el procesamiento de anotaciones con todos los complementos de este campo que aparecen en los atributos deps y plugins.

to_json

string JavaPluginInfo.to_json()

Obsoleto.. Esta API dejó de estar disponible y se quitará pronto. No dependas de ello. Está inhabilitada con ---incompatible_struct_has_no_methods. Usa esta marca para verificar que tu código sea compatible con la eliminación inminente.
Crea una string JSON a partir del parámetro struct. Este método solo funciona si todos los elementos de la estructura (de forma recurrente) son strings, ints, booleanos, otras estructuras, una lista de estos tipos o un diccionario con claves de string y valores de estos tipos. Las comillas y las líneas nuevas en las strings tienen formato de escape. Ejemplos:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

Obsoleto: En su lugar, usa json.encode(x) o json.encode_indent(x), que funcionan para valores distintos de structs y no contaminan el espacio de nombres del campo struct.

to_proto

string JavaPluginInfo.to_proto()

Obsoleto.. Esta API dejó de estar disponible y se quitará pronto. No dependas de ello. Está inhabilitada con ---incompatible_struct_has_no_methods. Usa esta marca para verificar que tu código sea compatible con la eliminación inminente.
Crea un mensaje de texto a partir del parámetro struct. Este método solo funciona si todos los elementos de la estructura (de forma recurrente) son strings, ints, booleanos, otras estructuras, diccionarios o listas de estos tipos. Las comillas y las líneas nuevas en las strings tienen formato de escape. Las claves de struct se iteran en el orden ordenado. Ejemplos:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

Obsoleto: usa proto.encode_text(x) en su lugar.