JavaPluginInfo

Um provedor que encapsula informações sobre plug-ins Java.

No momento, o único tipo de plug-in compatível são processadores de anotações.

Participantes

JavaPluginInfo

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

O construtor JavaPluginInfo.

Parâmetros

Parâmetro Descrição
runtime_deps sequence of JavaInfos; obrigatório
A biblioteca que contém um processador de anotações.
processor_class string; or None; obrigatório
O nome totalmente qualificado da classe que o compilador Java usa como ponto de entrada para o processador de anotações.
data sequence of Files; or depset of Files; default = []
Arquivos necessários para esse processador de anotações durante a execução.
generates_api default = False
Defina como verdadeiro quando este processador de anotações gerar código de API.

Esse processador de anotações é aplicado a um destino Java antes de produzir os cabeçalhos jar (que contêm assinaturas de método). Quando não há plug-ins de API, os jars de cabeçalho são gerados a partir das origens, reduzindo o caminho crítico.

AVISO: este parâmetro afeta o desempenho do build. Use-o somente se necessário.

api_generating_plugins

JavaPluginData JavaPluginInfo.api_generating_plugins

Retorna dados sobre a API que gera plug-ins definidos ou exportados por este destino.

Esses processadores de anotações são aplicados a um destino Java antes de produzir os jars de cabeçalho (que contêm assinaturas de método). Quando não há plug-ins de API, os jars de cabeçalho são gerados a partir das origens, reduzindo o caminho crítico.

O api_generating_plugins é um subconjunto de plugins.

java_outputs

list JavaPluginInfo.java_outputs

Retorna informações sobre saídas desse destino semelhante a Java/Java.

plugins

JavaPluginData JavaPluginInfo.plugins

Retorna dados sobre todos os plug-ins a que um destino de consumo deve aplicar.

Normalmente, ele é um java_plugin ou um java_library que exporta um ou mais plug-ins.

Uma java_library executa o processamento de anotações com todos os plug-ins desse campo aparecendo nos atributos deps e plugins.

to_json

string JavaPluginInfo.to_json()

Obsoleto. Esta API foi descontinuada e vai ser removida em breve. Não dependa disso. Ela está desativada com o ---incompatible_struct_has_no_methods. Use essa sinalização para verificar se seu código é compatível com a remoção iminente.
Cria uma string JSON a partir do parâmetro struct. Esse método só funciona se todos os elementos de struct (recursivamente) forem strings, ints, booleanos, outras estruturas, uma lista desses tipos ou um dicionário com chaves de string e valores desses tipos. Aspas e novas linhas em strings têm escape. Por exemplo:
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: em vez disso, use json.encode(x) ou json.encode_indent(x), que funcionam para valores diferentes de structs e não poluem o namespace do campo struct.

to_proto

string JavaPluginInfo.to_proto()

Obsoleto. Esta API foi descontinuada e vai ser removida em breve. Não dependa disso. Ela está desativada com o ---incompatible_struct_has_no_methods. Use essa sinalização para verificar se seu código é compatível com a remoção iminente.
Cria uma mensagem de texto a partir do parâmetro struct. Esse método só funciona se todos os elementos struct (recursivamente) forem strings, ints, booleanos, outras estruturas, dicts ou listas desses tipos. Aspas e novas linhas em strings têm escape. As chaves struct são iteradas na ordem de classificação. Exemplos:
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: use proto.encode_text(x).