Regras
- java_binary
- java_import
- java_library
- java_lite_proto_library
- java_proto_library
- java_test
- java_package_configuration
- java_plugin
- java_runtime
- java_toolchain
java_binary
Exibir origem da regrajava_binary(name, deps, srcs, data, resources, args, classpath_resources, compatible_with, create_executable, deploy_env, deploy_manifest_lines, deprecation, distribs, env, exec_compatible_with, exec_properties, features, javacopts, jvm_flags, launcher, licenses, main_class, output_licenses, plugins, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, stamp, tags, target_compatible_with, testonly, toolchains, use_launcher, use_testrunner, visibility)
Cria um arquivo Java ("arquivo jar"), além de um script de shell do wrapper com o mesmo nome da regra.
O script de shell do wrapper usa um caminho de classe que inclui, entre outras coisas, um arquivo jar para cada
biblioteca de que o binário depende. Ao executar o script de shell do wrapper, qualquer variável de ambiente JAVABIN
não vazia terá precedência sobre a versão especificada pela sinalização --java_runtime_version
do Bazel.
O script do wrapper aceita várias sinalizações exclusivas. Consulte
//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
para conferir uma lista de flags configuráveis e variáveis de ambiente aceitas pelo wrapper.
Destinos de saída implícitos
name.jar
: um arquivo Java, contendo os arquivos de classe e outros recursos correspondentes às dependências diretas do binário.name-src.jar
: um arquivo que contém as origens ("jar de origem").name_deploy.jar
: um arquivo Java adequado para implantação (criado apenas se solicitado explicitamente).Criar o destino
<name>_deploy.jar
para sua regra gera um arquivo jar independente com um manifesto que permite que ele seja executado com o comandojava -jar
ou com a opção--singlejar
do script wrapper. É preferível usar o script de wrapper em vez dejava -jar
porque ele também transmite as sinalizações da JVM e as opções para carregar bibliotecas nativas.O jar de implantação contém todas as classes que seriam encontradas por um carregador de classe que pesquisou o caminho de classe a partir do script de wrapper do binário do início ao fim. Ele também contém as bibliotecas nativas necessárias para dependências. Eles são carregados automaticamente na JVM durante a execução.
Se o destino especificar um atributo launcher, em vez de ser um arquivo JAR normal, o _deploy.jar será um binário nativo. Ela conterá a tela de início e todas as dependências nativas (C++) da sua regra, todas vinculadas a um binário estático. Os bytes do arquivo jar serão anexados ao binário nativo, criando um único blob binário contendo o executável e o código Java. Execute o arquivo jar resultante diretamente da mesma forma que faria com qualquer binário nativo.
name_deploy-src.jar
: um arquivo contendo as origens coletadas do fechamento transitivo do destino. Elas corresponderão às classes nodeploy.jar
, exceto quando os jars não tiverem um jar de origem correspondente.
Um atributo deps
não é permitido em uma regra java_binary
sem
srcs
. Essa regra exige um
main_class
fornecido por
runtime_deps
.
O snippet de código a seguir ilustra um erro comum:
java_binary( name = "DontDoThis", srcs = [ ...,"GeneratedJavaFile.java"
, # a generated .java file ], deps = [":generating_rule",
], # rule that generates that file )
Em vez disso, faça o seguinte:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. É recomendável usar o nome do arquivo de origem que é o ponto de entrada principal do aplicativo (menos a extensão). Por exemplo, se o ponto de entrada tiver o nome Main.java , seu nome poderá ser Main .
|
deps
|
Lista de rótulos. O padrão é deps em
Atributos típicos definidos pela
maioria das regras de build.
|
srcs
|
Lista de rótulos. O padrão é
Arquivos de origem do tipo
Arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento é quase sempre obrigatório, exceto se um atributo
|
resources
|
Lista de rótulos. O padrão é
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos Os recursos podem ser arquivos de origem ou gerados. |
classpath_resources
|
Lista de rótulos. O padrão é
Uma lista de recursos que precisam estar localizados na raiz da árvore Java. A única finalidade
desse atributo é oferecer suporte a bibliotecas de terceiros que exigem que os recursos sejam
encontrados no caminho de classe como exatamente |
create_executable
|
Booleano; não configurável; o padrão é java_single_jar .
|
deploy_env
|
Lista de rótulos. O padrão é java_binary que representam o ambiente
de implantação desse binário.
Defina esse atributo ao criar um plug-in que será carregado por outro
java_binary .A definição desse atributo exclui todas as dependências do caminho de classe do ambiente de execução (e do jar de implantação) desse binário que são compartilhadas entre esse binário e os destinos especificados em deploy_env .
|
deploy_manifest_lines
|
Lista de strings. O padrão é META-INF/manifest.mf gerado para o
destino *_deploy.jar . O conteúdo desse atributo não está sujeito
à substituição "Make variables".
|
javacopts
|
Lista de strings. O padrão é Essas opções do compilador são transmitidas para javac após as opções do compilador global. |
jvm_flags
|
Lista de strings. O padrão é O script de wrapper de um binário Java inclui uma definição CLASSPATH
(para encontrar todos os jars dependentes) e invoca o interpretador Java correto.
A linha de comando gerada pelo script de wrapper inclui o nome da
classe principal seguido por um Esse atributo não tem efeito nas saídas |
launcher
|
Rótulo; o padrão é bin/java normal incluído no JDK.
O destino precisa ser um cc_binary . Qualquer cc_binary que implemente a
API Java Invocation pode ser especificado como um valor para esse atributo.
Por padrão, o Bazel usa o inicializador normal do JDK (bin/java ou java.exe). A sinalização Observe que as dependências nativas (C++, SWIG, JNI) serão criadas de maneira diferente, dependendo se você estiver usando a tela de início do JDK ou outra:
Ao usar qualquer tela de início diferente da tela de início padrão do JDK, o formato
da saída |
main_class
|
String. O padrão é main() para usar como ponto de entrada.
Se uma regra usar essa opção, não precisará de uma lista srcs=[...] .
Assim, com esse atributo, é possível tornar um executável a partir de uma biblioteca Java que já
contenha um ou mais métodos main() .
O valor desse atributo é um nome de classe, não um arquivo de origem. A classe precisa estar
disponível no momento da execução: ela pode ser compilada por essa regra (de |
plugins
|
Lista de rótulos. O padrão é java_plugin especificado nesse atributo será executado sempre que essa regra
for criada. Uma biblioteca também pode herdar plug-ins de dependências que usam
exported_plugins . Os recursos
gerados pelo plug-in serão incluídos no jar resultante dessa regra.
|
resource_jars
|
Lista de rótulos. O padrão é |
resource_strip_prefix
|
String. O padrão é
Se especificado, esse prefixo de caminho será removido de todos os arquivos no atributo
|
runtime_deps
|
Lista de rótulos. O padrão é deps comum, eles serão exibidos no caminho de classe do tempo de execução, mas, ao contrário deles, não no caminho de classe do tempo de compilação. As dependências necessárias apenas no tempo de execução são listadas aqui. As ferramentas de análise de dependência precisam ignorar os destinos que aparecem em runtime_deps e deps .
|
stamp
|
Número inteiro. O padrão é
Os binários carimbos não são recriados, a menos que as dependências deles mudem. |
use_launcher
|
Booleano. O padrão é Se o atributo for definido como "false", o atributo
launcher e a sinalização
|
use_testrunner
|
Booleano. O padrão é com.google.testing.junit.runner.BazelTestRunner ) como o ponto de entrada principal de um programa Java e forneça a classe de teste ao executor de testes como um valor da propriedade de sistema bazel.test_suite .
É possível usar isso para substituir o comportamento
padrão, que é usar o executor de testes para
regras java_test
em vez de usá-lo para regras java_binary . É improvável que você queira fazer isso. Um uso é para regras AllTest que são invocadas por outra regra, por exemplo, para configurar um banco de dados antes de executar os testes. A regra AllTest
precisa ser declarada como java_binary , mas
ainda precisa usar o executor de testes como o ponto de entrada principal.
O nome de uma classe do executor de testes pode ser substituído pelo atributo main_class .
|
java_import
Exibir origem da regrajava_import(name, deps, data, compatible_with, constraints, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, jars, licenses, neverlink, proguard_specs, restricted_to, runtime_deps, srcjar, tags, target_compatible_with, testonly, visibility)
Essa regra permite o uso de arquivos .jar
pré-compilados como bibliotecas para as regras java_library
e java_binary
.
Exemplos
java_import( name = "maven_model", jars = [ "maven_model/maven-aether-provider-3.2.3.jar", "maven_model/maven-model-3.2.3.jar", "maven_model/maven-model-builder-3.2.3.jar", ], )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
deps
|
Lista de rótulos. O padrão é |
constraints
|
Lista de strings; não configurável; o padrão é |
exports
|
Lista de rótulos. O padrão é |
jars
|
Lista de rótulos, obrigatório A lista de arquivos JAR fornecida para destinos Java que dependem desse destino. |
neverlink
|
Booleano. O padrão é tools.jar para qualquer item executado em
um JDK padrão.
|
proguard_specs
|
Lista de rótulos. O padrão é android_binary , dependendo dessa biblioteca.
Os arquivos incluídos aqui só podem ter regras idempotentes, como -dontnote, -dontwarn,
assumenosideeffectives e regras que começam com -keep. Outras opções só podem aparecer em
proguard_specs de android_binary para garantir mesclagens não tautológicas.
|
runtime_deps
|
Lista de rótulos. O padrão é |
srcjar
|
Rótulo; o padrão é |
java_library
Exibir origem da regrajava_library(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exported_plugins, exports, features, javacopts, licenses, neverlink, plugins, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, tags, target_compatible_with, testonly, visibility)
Essa regra compila e vincula origens em um arquivo .jar
.
Destinos de saída implícitos
libname.jar
: um arquivo Java que contém os arquivos da classe.libname-src.jar
: um arquivo que contém as origens ("jar de origem").
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
deps
|
Lista de rótulos. O padrão é deps em
Atributos típicos definidos pela
maioria das regras de build.
Os jars criados pelas regras
Por outro lado, os destinos no atributo |
srcs
|
Lista de rótulos. O padrão é
Arquivos de origem do tipo
Arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento é quase sempre obrigatório, exceto se um atributo
|
data
|
Lista de rótulos. O padrão é data em
Atributos típicos definidos pela
maioria das regras de build.
Ao criar um |
resources
|
Lista de rótulos. O padrão é
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos Os recursos podem ser arquivos de origem ou gerados. |
exported_plugins
|
Lista de rótulos. O padrão é java_plugin s (por exemplo, processadores
de anotações) para exportar para bibliotecas que dependem diretamente dessa biblioteca.
A lista especificada de |
exports
|
Lista de rótulos. O padrão é
Listar as regras aqui as tornará disponíveis para as regras pai, como se os pais dependessem explicitamente delas. Isso não é verdade para o
Resumo: uma regra X pode acessar o código em Y se houver um caminho de dependência entre elas que comece com uma borda
Suponha que A dependa de B e B dependa de C. Nesse caso, C é uma dependência transitiva de A. Portanto, alterar as origens de C e recriar A vai recriar tudo corretamente. No entanto, A não poderá usar classes em C. Para permitir
isso, A precisa declarar C em O fechamento de bibliotecas exportadas está disponível para todas as regras mãe diretas. Veja um exemplo um pouco diferente: A depende de B, B depende de C e D e também exporta C, mas não D. Agora, A tem acesso a C, mas não a D. Agora, se C e D exportassem algumas bibliotecas, C' e D', respectivamente, A só poderia acessar C', mas não D'.
Importante: uma regra exportada não é uma dependência regular. Seguindo o exemplo anterior,
se B exportar C e também quiser usar C, será necessário listá-lo no próprio
|
javacopts
|
Lista de strings. O padrão é Essas opções do compilador são transmitidas para javac após as opções do compilador global. |
neverlink
|
Booleano. O padrão é tools.jar para qualquer item
executado em um JDK padrão.
Observe que Se a biblioteca de tempo de execução for diferente da biblioteca de compilação, verifique se ela difere apenas em locais onde o JLS proíbe compiladores para inline (e isso precisa ser mantido para todas as versões futuras do JLS). |
plugins
|
Lista de rótulos. O padrão é java_plugin especificado nesse atributo será executado sempre que essa regra
for criada. Uma biblioteca também pode herdar plug-ins de dependências que usam
exported_plugins . Os recursos
gerados pelo plug-in serão incluídos no jar resultante dessa regra.
|
proguard_specs
|
Lista de rótulos. O padrão é android_binary , dependendo dessa biblioteca.
Os arquivos incluídos aqui só podem ter regras idempotentes, como -dontnote, -dontwarn,
assumenosideeffectives e regras que começam com -keep. Outras opções só podem aparecer em
proguard_specs de android_binary para garantir mesclagens não tautológicas.
|
resource_jars
|
Lista de rótulos. O padrão é |
resource_strip_prefix
|
String. O padrão é
Se especificado, esse prefixo de caminho será removido de todos os arquivos no atributo
|
runtime_deps
|
Lista de rótulos. O padrão é deps comum, eles serão exibidos no caminho de classe do tempo de execução, mas, ao contrário deles, não no caminho de classe do tempo de compilação. As dependências necessárias apenas no tempo de execução são listadas aqui. As ferramentas de análise de dependência precisam ignorar os destinos que aparecem em runtime_deps e deps .
|
java_lite_proto_library
Exibir origem da regrajava_lite_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_lite_proto_library
gera código Java com base em arquivos .proto
.
deps
precisa apontar para regras proto_library
.
Exemplo:
java_library( name = "lib", deps = [":foo"], ) java_lite_proto_library( name = "foo", deps = [":bar"], ) proto_library( name = "bar", )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
deps
|
Lista de rótulos. O padrão é proto_library
para gerar código Java.
|
java_proto_library
Exibir origem da regrajava_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_proto_library
gera código Java com base em arquivos .proto
.
deps
precisa apontar para regras proto_library
.
Exemplo:
java_library( name = "lib", deps = [":foo_java_proto"], ) java_proto_library( name = "foo_java_proto", deps = [":foo_proto"], ) proto_library( name = "foo_proto", )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
deps
|
Lista de rótulos. O padrão é proto_library
para gerar código Java.
|
java_test
Exibir origem da regrajava_test(name, deps, srcs, data, resources, args, classpath_resources, compatible_with, create_executable, deploy_manifest_lines, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, javacopts, jvm_flags, launcher, licenses, local, main_class, plugins, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, shard_count, size, stamp, tags, target_compatible_with, test_class, testonly, timeout, toolchains, use_launcher, use_testrunner, visibility)
Uma regra java_test()
compila um teste Java. Um teste é um wrapper binário em torno do
código de teste. O método principal do executor de testes é invocado em vez da classe principal sendo compilada.
Destinos de saída implícitos
name.jar
: um arquivo Java.name_deploy.jar
: um arquivo Java adequado para implantação. (Criado somente se solicitado explicitamente.) Consulte a descrição da saídaname_deploy.jar
de java_binary para saber mais.
Consulte a seção sobre argumentos java_binary(). Essa regra também oferece suporte a todos os atributos comuns a todas as regras de teste (*_test).
Exemplos
java_library( name = "tests", srcs = glob(["*.java"]), deps = [ "//java/com/foo/base:testResources", "//java/com/foo/testing/util", ], ) java_test( name = "AllTests", size = "small", runtime_deps = [ ":tests", "//util/mysql", ], )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
deps
|
Lista de rótulos. O padrão é deps em
Atributos típicos definidos pela
maioria das regras de build.
|
srcs
|
Lista de rótulos. O padrão é
Arquivos de origem do tipo
Arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento é quase sempre obrigatório, exceto se um atributo
|
resources
|
Lista de rótulos. O padrão é
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos Os recursos podem ser arquivos de origem ou gerados. |
classpath_resources
|
Lista de rótulos. O padrão é
Uma lista de recursos que precisam estar localizados na raiz da árvore Java. A única finalidade
desse atributo é oferecer suporte a bibliotecas de terceiros que exigem que os recursos sejam
encontrados no caminho de classe como exatamente |
create_executable
|
Booleano; não configurável; o padrão é java_single_jar .
|
deploy_manifest_lines
|
Lista de strings. O padrão é META-INF/manifest.mf gerado para o
destino *_deploy.jar . O conteúdo desse atributo não está sujeito
à substituição "Make variables".
|
javacopts
|
Lista de strings. O padrão é Essas opções do compilador são transmitidas para javac após as opções do compilador global. |
jvm_flags
|
Lista de strings. O padrão é O script de wrapper de um binário Java inclui uma definição CLASSPATH
(para encontrar todos os jars dependentes) e invoca o interpretador Java correto.
A linha de comando gerada pelo script de wrapper inclui o nome da
classe principal seguido por um Esse atributo não tem efeito nas saídas |
launcher
|
Rótulo; o padrão é bin/java normal incluído no JDK.
O destino precisa ser um cc_binary . Qualquer cc_binary que implemente a
API Java Invocation pode ser especificado como um valor para esse atributo.
Por padrão, o Bazel usa o inicializador normal do JDK (bin/java ou java.exe). A sinalização Observe que as dependências nativas (C++, SWIG, JNI) serão criadas de maneira diferente, dependendo se você estiver usando a tela de início do JDK ou outra:
Ao usar qualquer tela de início diferente da tela de início padrão do JDK, o formato
da saída |
main_class
|
String. O padrão é main() para usar como ponto de entrada.
Se uma regra usar essa opção, não precisará de uma lista srcs=[...] .
Assim, com esse atributo, é possível tornar um executável a partir de uma biblioteca Java que já
contenha um ou mais métodos main() .
O valor desse atributo é um nome de classe, não um arquivo de origem. A classe precisa estar
disponível no momento da execução: ela pode ser compilada por essa regra (de |
plugins
|
Lista de rótulos. O padrão é java_plugin especificado nesse atributo será executado sempre que essa regra
for criada. Uma biblioteca também pode herdar plug-ins de dependências que usam
exported_plugins . Os recursos
gerados pelo plug-in serão incluídos no jar resultante dessa regra.
|
resource_jars
|
Lista de rótulos. O padrão é |
resource_strip_prefix
|
String. O padrão é
Se especificado, esse prefixo de caminho será removido de todos os arquivos no atributo
|
runtime_deps
|
Lista de rótulos. O padrão é deps comum, eles serão exibidos no caminho de classe do tempo de execução, mas, ao contrário deles, não no caminho de classe do tempo de compilação. As dependências necessárias apenas no tempo de execução são listadas aqui. As ferramentas de análise de dependência precisam ignorar os destinos que aparecem em runtime_deps e deps .
|
stamp
|
Número inteiro. O padrão é
Os binários carimbos não são recriados, a menos que as dependências deles mudem. |
test_class
|
String. O padrão é
Por padrão, se esse argumento não estiver definido, o modo legado será usado e os
argumentos de teste serão usados. Defina a sinalização
Esse atributo especifica o nome de uma classe Java a ser executada por esse teste. É raro precisar definir isso. Se esse argumento for omitido, ele será inferido usando o
Para o JUnit3, a classe de teste precisa ser uma subclasse de
Esse atributo permite que várias regras |
use_launcher
|
Booleano. O padrão é Se o atributo for definido como "false", o atributo
launcher e a sinalização
|
use_testrunner
|
Booleano. O padrão é com.google.testing.junit.runner.BazelTestRunner ) como o ponto de entrada principal de um programa Java e forneça a classe de teste ao executor de testes como um valor da propriedade de sistema bazel.test_suite .
É possível usar isso para substituir o comportamento
padrão, que é usar o executor de testes para
regras java_test
em vez de usá-lo para regras java_binary . É improvável que você queira fazer isso. Um uso é para regras AllTest que são invocadas por outra regra, por exemplo, para configurar um banco de dados antes de executar os testes. A regra AllTest
precisa ser declarada como java_binary , mas
ainda precisa usar o executor de testes como o ponto de entrada principal.
O nome de uma classe do executor de testes pode ser substituído pelo atributo main_class .
|
java_package_configuration
Exibir origem da regrajava_package_configuration(name, data, compatible_with, deprecation, distribs, features, javacopts, licenses, packages, restricted_to, tags, target_compatible_with, testonly, visibility)
Configuração para aplicar a um conjunto de pacotes.
As configurações podem ser adicionadas aos
java_toolchain.javacopts
s.
Exemplo:
java_package_configuration( name = "my_configuration", packages = [":my_packages"], javacopts = ["-Werror"], ) package_group( name = "my_packages", packages = [ "//com/my/project/...", "-//com/my/project/testing/...", ], ) java_toolchain( ..., package_configuration = [ ":my_configuration", ] )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
data
|
Lista de rótulos. O padrão é |
javacopts
|
Lista de strings. O padrão é |
packages
|
Lista de rótulos. O padrão é package_group s
ao qual a configuração será aplicada.
|
java_plugin
Exibir origem da regrajava_plugin(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, generates_api, javacopts, licenses, neverlink, output_licenses, plugins, processor_class, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, tags, target_compatible_with, testonly, visibility)
java_plugin
define plug-ins para o compilador Java executado pelo Bazel. No momento, o
único tipo de plug-in com suporte são os processadores de anotações. Uma regra java_library
ou
java_binary
pode executar plug-ins dependendo deles por meio do atributo
plugins
. Um java_library
também pode exportar automaticamente plug-ins para bibliotecas que
dependem diretamente dele usando
exported_plugins
.
Destinos de saída implícitos
libname.jar
: um arquivo Java.
Os argumentos são idênticos a java_library
, exceto pela adição do argumento processor_class
.
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
deps
|
Lista de rótulos. O padrão é deps em
Atributos típicos definidos pela
maioria das regras de build.
Os jars criados pelas regras
Por outro lado, os destinos no atributo |
srcs
|
Lista de rótulos. O padrão é
Arquivos de origem do tipo
Arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento é quase sempre obrigatório, exceto se um atributo
|
data
|
Lista de rótulos. O padrão é data em
Atributos típicos definidos pela
maioria das regras de build.
Ao criar um |
resources
|
Lista de rótulos. O padrão é
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos Os recursos podem ser arquivos de origem ou gerados. |
generates_api
|
Booleano. O padrão é Se uma regra usar um processador de anotações que gera a API, outras regras que dependem dele poderão se referir ao código gerado somente se as ações de compilação delas estiverem programadas após a regra de geração. Esse atributo instrui o Bazel a introduzir restrições de programação quando --java_header_compilation está ativado. AVISO: esse atributo afeta o desempenho do build. Use-o apenas se necessário. |
javacopts
|
Lista de strings. O padrão é Essas opções do compilador são transmitidas para javac após as opções do compilador global. |
neverlink
|
Booleano. O padrão é tools.jar para qualquer item
executado em um JDK padrão.
Observe que Se a biblioteca de tempo de execução for diferente da biblioteca de compilação, verifique se ela difere apenas em locais onde o JLS proíbe compiladores para inline (e isso precisa ser mantido para todas as versões futuras do JLS). |
output_licenses
|
Tipo de licença. O padrão é common attributes
.
|
plugins
|
Lista de rótulos. O padrão é java_plugin especificado nesse atributo será executado sempre que essa regra
for criada. Uma biblioteca também pode herdar plug-ins de dependências que usam
exported_plugins . Os recursos
gerados pelo plug-in serão incluídos no jar resultante dessa regra.
|
processor_class
|
String. O padrão é |
proguard_specs
|
Lista de rótulos. O padrão é android_binary , dependendo dessa biblioteca.
Os arquivos incluídos aqui só podem ter regras idempotentes, como -dontnote, -dontwarn,
assumenosideeffectives e regras que começam com -keep. Outras opções só podem aparecer em
proguard_specs de android_binary para garantir mesclagens não tautológicas.
|
resource_jars
|
Lista de rótulos. O padrão é |
resource_strip_prefix
|
String. O padrão é
Se especificado, esse prefixo de caminho será removido de todos os arquivos no atributo
|
java_runtime
Exibir origem da regrajava_runtime(name, srcs, compatible_with, default_cds, deprecation, distribs, features, hermetic_srcs, java, java_home, lib_ct_sym, lib_modules, licenses, restricted_to, tags, target_compatible_with, testonly, version, visibility)
Especifica a configuração para um ambiente de execução Java.
Exemplo:
java_runtime( name = "jdk-9-ea+153", srcs = glob(["jdk9-ea+153/**"]), java_home = "jdk9-ea+153", )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
srcs
|
Lista de rótulos. O padrão é |
default_cds
|
Rótulo; o padrão é java_runtime hermético. Quando hermético
está ativado para um destino java_binary e se o destino não
fornece o próprio arquivo CDS especificando o atributo
classlist ,
o CDS padrão java_runtime é empacotado no JAR de implantação hermética.
|
hermetic_srcs
|
Lista de rótulos. O padrão é |
java
|
Rótulo; o padrão é |
java_home
|
String. O padrão é srcs e java precisam estar vazios.
|
lib_ct_sym
|
Rótulo; o padrão é --release . Se não for especificado e houver exatamente um arquivo em srcs com caminho que termina com /lib/ct.sym , esse arquivo será usado.
|
lib_modules
|
Rótulo; o padrão é |
version
|
Número inteiro. O padrão é Runtime.version().feature() .
|
java_toolchain
Exibir origem da regrajava_toolchain(name, android_lint_data, android_lint_jvm_opts, android_lint_opts, android_lint_package_configuration, android_lint_runner, bootclasspath, compatible_with, deprecation, deps_checker, distribs, features, forcibly_disable_header_compilation, genclass, header_compiler, header_compiler_direct, ijar, jacocorunner, java_runtime, javabuilder, javabuilder_data, javabuilder_jvm_opts, javac_supports_multiplex_workers, javac_supports_worker_multiplex_sandboxing, javac_supports_workers, javacopts, jvm_opts, licenses, oneversion, oneversion_allowlist_for_tests, oneversion_whitelist, package_configuration, proguard_allowlister, resourcejar, restricted_to, singlejar, source_version, tags, target_compatible_with, target_version, testonly, timezone_data, tools, turbine_data, turbine_jvm_opts, visibility, xlint)
Especifica a configuração do compilador Java. O conjunto de ferramentas a ser usado pode ser alterado com o argumento --java_dataset. Normalmente, não é recomendável escrever esse tipo de regra, a menos que você queira ajustar seu compilador Java.
Exemplos
Um exemplo simples seria:
java_toolchain( name = "toolchain", source_version = "7", target_version = "7", bootclasspath = ["//tools/jdk:bootclasspath"], xlint = [ "classfile", "divzero", "empty", "options", "path" ], javacopts = [ "-g" ], javabuilder = ":JavaBuilder_deploy.jar", )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
android_lint_data
|
Lista de rótulos. O padrão é |
android_lint_jvm_opts
|
Lista de strings. O padrão é |
android_lint_opts
|
Lista de strings. O padrão é |
android_lint_package_configuration
|
Lista de rótulos. O padrão é |
android_lint_runner
|
Rótulo; o padrão é |
bootclasspath
|
Lista de rótulos. O padrão é |
deps_checker
|
Lista de rótulos. O padrão é |
forcibly_disable_header_compilation
|
Booleano. O padrão é |
genclass
|
Lista de rótulos, obrigatório Rótulo do jar de implantação do GenClass. |
header_compiler
|
Lista de rótulos. O padrão é |
header_compiler_direct
|
Lista de rótulos. O padrão é Esta ferramenta não é compatível com o processamento de anotações. |
ijar
|
Lista de rótulos, obrigatório Rótulo do executável ijar. |
jacocorunner
|
Rótulo; o padrão é |
java_runtime
|
Label, obrigatório O java_runtime a ser usado com este conjunto de ferramentas. O padrão na configuração de execução é java_runtime. |
javabuilder
|
Lista de rótulos, obrigatório Rótulo do jar de implantação do JavaBuilder. |
javabuilder_data
|
Lista de rótulos. O padrão é |
javabuilder_jvm_opts
|
Lista de strings. O padrão é |
javac_supports_multiplex_workers
|
Booleano. O padrão é |
javac_supports_worker_multiplex_sandboxing
|
Booleano. O padrão é |
javac_supports_workers
|
Booleano. O padrão é |
javacopts
|
Lista de strings. O padrão é |
jvm_opts
|
Lista de strings. O padrão é |
oneversion
|
Rótulo; o padrão é |
oneversion_allowlist_for_tests
|
Rótulo; o padrão é |
oneversion_whitelist
|
Rótulo; o padrão é |
package_configuration
|
Lista de rótulos. O padrão é |
proguard_allowlister
|
Rótulo; o padrão é |
resourcejar
|
Lista de rótulos. O padrão é |
singlejar
|
Lista de rótulos, obrigatório Rótulo do jar de implantação do SingleJar. |
source_version
|
String. O padrão é |
target_version
|
String. O padrão é |
timezone_data
|
Rótulo; o padrão é |
tools
|
Lista de rótulos. O padrão é |
turbine_data
|
Lista de rótulos. O padrão é |
turbine_jvm_opts
|
Lista de strings. O padrão é |
xlint
|
Lista de strings. O padrão é |