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
java_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 de 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.
O script de wrapper aceita vários sinalizadores exclusivos. Consulte
//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
para ver uma lista de sinalizações 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 a regra cria 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 de wrapper. É melhor usar o script de wrapper do quejava -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 no 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 no tempo de 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. Isso conterá a tela de início e todas as dependências nativas (C++) da regra, todas vinculadas a um binário estático. Os bytes do arquivo jar real serão anexados a esse binário nativo, criando um único blob binário contendo o código executável e o código Java. É possível executar o arquivo jar resultante diretamente como você executaria qualquer binário nativo.
name_deploy-src.jar
: um arquivo que contém as origens coletadas do fechamento transitivo do destino. Eles 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 |
Um nome exclusivo para o destino. É uma prática recomendada 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 se chamar Main.java , o nome poderá ser Main .
|
deps
|
deps em
Atributos típicos definidos pela
maioria das regras de build.
|
srcs
|
Os arquivos de origem do tipo
Os arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento quase sempre é obrigatório, exceto se um atributo
|
resources
|
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos
Os recursos podem ser arquivos de origem ou arquivos gerados. |
classpath_resources
|
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 |
create_executable
|
launcher ou main_class estiverem definidos.
|
deploy_env
|
java_binary que representam o ambiente de implantação
deste 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
|
META-INF/manifest.mf gerado para o
destino *_deploy.jar . O conteúdo desse atributo não está sujeito
à substituição "Fazer variável".
|
javacopts
|
Essas opções do compilador são transmitidas para javac depois das opções do compilador global |
jvm_flags
|
O script de wrapper de um binário Java inclui uma definição CLASSPATH (para encontrar todos os jars dependentes) e invoca o intérprete Java correto.
A linha de comando gerada pelo script de wrapper inclui o nome da classe principal seguido por um Observe que esse atributo não tem efeito nas saídas de |
launcher
|
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 especificada 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 suas dependências nativas (C++, SWIG, JNI) serão criadas de maneira diferente se você estiver usando a tela de início do JDK ou outra tela de início:
Ao usar qualquer tela de início diferente da tela de início padrão do JDK, o formato
da saída |
main_class
|
main() a ser usado como ponto de entrada.
Se uma regra usar essa opção, ela não precisará de uma lista srcs=[...] .
Assim, com esse atributo, é possível tornar um executável de uma biblioteca Java que já
contém 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 durante a execução: ela pode ser compilada por essa regra (de |
plugins
|
java_plugin especificado neste 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
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é removido de todos os arquivos no atributo
|
runtime_deps
|
deps comum, eles vão aparecer no caminho de classe da 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 momento da execução precisam ser listadas aqui. As ferramentas de análise de dependência precisam ignorar os destinos que aparecem em runtime_deps e deps .
|
stamp
|
Os binários carimbos não são recriados, a menos que as dependências deles mudem. |
use_launcher
|
Se ele for definido como falso, o
atributo launcher e a sinalização
|
use_testrunner
|
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 .
Você pode usar isso para substituir o comportamento
padrão, que é usar o executor de testes para
regras java_test
e não para regras java_binary . É improvável que você queira fazer isso. Um uso é para regras AllTest
que são invocadas por outra regra (para configurar um banco de dados
antes de executar os testes, por exemplo). A regra AllTest
precisa ser declarada como java_binary , mas ainda
precisa usar o executor de testes como ponto de entrada principal.
O nome de uma classe de executor de testes pode ser substituído pelo atributo main_class .
|
java_import
java_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 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 |
Um nome exclusivo para o destino. |
deps
|
|
constraints
|
|
exports
|
|
jars
|
|
neverlink
|
tools.jar para qualquer item executado em
um JDK padrão.
|
proguard_specs
|
android_binary , dependendo dessa biblioteca.
Os arquivos incluídos aqui precisam ter apenas regras idempotentes, como -dontnote, -dontwarn,
suposições de efeitos colaterais e regras que começam com -keep. Outras opções só podem aparecer nas
proguard_specs de android_binary para garantir mesclagens não automáticas.
|
runtime_deps
|
|
srcjar
|
|
java_library
java_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)
Esta regra compila e vincula as fontes a um arquivo .jar
.
Destinos de saída implícitos
libname.jar
: um arquivo Java que contém os arquivos de classe.libname-src.jar
: um arquivo que contém as origens ("jar de origem").
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para o destino. |
deps
|
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
|
Os arquivos de origem do tipo
Os arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento quase sempre é obrigatório, exceto se um atributo
|
data
|
data em
Atributos típicos definidos pela
maioria das regras de build.
Ao criar um |
resources
|
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos
Os recursos podem ser arquivos de origem ou arquivos gerados. |
exported_plugins
|
java_plugin s (por exemplo, processadores
de anotações) a serem exportados para bibliotecas que dependem diretamente dessa biblioteca.
A lista especificada de |
exports
|
Listar regras aqui as disponibilizará para as regras pai, como se os pais dependessem
explicitamente dessas regras. Isso não é verdade para
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, mudar as origens de C e recriar A
recriará tudo corretamente. No entanto, A não poderá usar classes em C. Para permitir
isso, A precisa declarar C no O fechamento de bibliotecas exportadas está disponível para todas as regras de pai direto. 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 normal. No exemplo anterior,
se B exportar C e também quiser usar C, também será necessário listá-lo no próprio
|
javacopts
|
Essas opções do compilador são transmitidas para javac depois das opções do compilador global |
neverlink
|
tools.jar para qualquer item
em execução em um JDK padrão.
Observe que Se a biblioteca de tempo de execução for diferente da biblioteca de compilação, é necessário garantir que ela diferencie apenas em locais em que o JLS proíbe compiladores em linha (e que precisam manter todas as versões futuras do JLS). |
plugins
|
java_plugin especificado neste 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
|
android_binary , dependendo dessa biblioteca.
Os arquivos incluídos aqui precisam ter apenas regras idempotentes, como -dontnote, -dontwarn,
suposições de efeitos colaterais e regras que começam com -keep. Outras opções só podem aparecer nas
proguard_specs de android_binary para garantir mesclagens não automáticas.
|
resource_jars
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é removido de todos os arquivos no atributo
|
runtime_deps
|
deps comum, eles vão aparecer no caminho de classe da 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 momento da execução precisam ser 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
java_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 a partir de arquivos .proto
.
deps
precisa apontar para regras proto_library
.
Exemplos
java_library( name = "lib", deps = [":foo"], ) java_lite_proto_library( name = "foo", deps = [":bar"], ) proto_library( name = "bar", )
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para o destino. |
deps
|
proto_library
para as quais gerar o código Java.
|
java_proto_library
java_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 a partir de arquivos .proto
.
deps
precisa apontar para regras proto_library
.
Exemplos
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 |
Um nome exclusivo para o destino. |
deps
|
proto_library
para as quais gerar o código Java.
|
java_test
java_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 seu
código de teste. O método principal do executor de testes é invocado em vez de a classe principal que está sendo compilada.
Destinos de saída implícitos
name.jar
: um arquivo Java.name_deploy.jar
: um arquivo Java adequado para implantação. Criada 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 |
Um nome exclusivo para o destino. |
deps
|
deps em
Atributos típicos definidos pela
maioria das regras de build.
|
srcs
|
Os arquivos de origem do tipo
Os arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento quase sempre é obrigatório, exceto se um atributo
|
resources
|
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos
Os recursos podem ser arquivos de origem ou arquivos gerados. |
classpath_resources
|
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 |
create_executable
|
launcher ou main_class estiverem definidos.
|
deploy_manifest_lines
|
META-INF/manifest.mf gerado para o
destino *_deploy.jar . O conteúdo desse atributo não está sujeito
à substituição "Fazer variável".
|
javacopts
|
Essas opções do compilador são transmitidas para javac depois das opções do compilador global |
jvm_flags
|
O script de wrapper de um binário Java inclui uma definição CLASSPATH (para encontrar todos os jars dependentes) e invoca o intérprete Java correto.
A linha de comando gerada pelo script de wrapper inclui o nome da classe principal seguido por um Observe que esse atributo não tem efeito nas saídas de |
launcher
|
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 especificada 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 suas dependências nativas (C++, SWIG, JNI) serão criadas de maneira diferente se você estiver usando a tela de início do JDK ou outra tela de início:
Ao usar qualquer tela de início diferente da tela de início padrão do JDK, o formato
da saída |
main_class
|
main() a ser usado como ponto de entrada.
Se uma regra usar essa opção, ela não precisará de uma lista srcs=[...] .
Assim, com esse atributo, é possível tornar um executável de uma biblioteca Java que já
contém 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 durante a execução: ela pode ser compilada por essa regra (de |
plugins
|
java_plugin especificado neste 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
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é removido de todos os arquivos no atributo
|
runtime_deps
|
deps comum, eles vão aparecer no caminho de classe da 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 momento da execução precisam ser listadas aqui. As ferramentas de análise de dependência precisam ignorar os destinos que aparecem em runtime_deps e deps .
|
stamp
|
Os binários carimbos não são recriados, a menos que as dependências deles mudem. |
test_class
|
Por padrão, se esse argumento não for definido, o modo legado será usado e os
argumentos de teste serão utilizados. Defina a sinalização
Este atributo especifica o nome de uma classe Java a ser executada por este teste. É raro configurar isso. Se for omitido, o argumento será inferido usando o
Para JUnit3, a classe de teste precisa ser uma subclasse de
Esse atributo permite que várias regras |
use_launcher
|
Se ele for definido como falso, o
atributo launcher e a sinalização
|
use_testrunner
|
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 .
Você pode usar isso para substituir o comportamento
padrão, que é usar o executor de testes para
regras java_test
e não para regras java_binary . É improvável que você queira fazer isso. Um uso é para regras AllTest
que são invocadas por outra regra (para configurar um banco de dados
antes de executar os testes, por exemplo). A regra AllTest
precisa ser declarada como java_binary , mas ainda
precisa usar o executor de testes como ponto de entrada principal.
O nome de uma classe de executor de testes pode ser substituído pelo atributo main_class .
|
java_package_configuration
java_package_configuration(name, data, compatible_with, deprecation, distribs, features, javacopts, licenses, packages, restricted_to, tags, target_compatible_with, testonly, visibility)
Configuração a ser aplicada a um conjunto de pacotes.
As configurações podem ser adicionadas a
java_toolchain.javacopts
s.
Exemplos
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 |
Um nome exclusivo para o destino. |
data
|
|
javacopts
|
|
packages
|
package_group s
em que a configuração será aplicada.
|
java_plugin
java_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 compatível são 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 |
Um nome exclusivo para o destino. |
deps
|
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
|
Os arquivos de origem do tipo
Os arquivos de origem do tipo
Regras: se a regra (normalmente
Esse argumento quase sempre é obrigatório, exceto se um atributo
|
data
|
data em
Atributos típicos definidos pela
maioria das regras de build.
Ao criar um |
resources
|
Se os recursos forem especificados, eles serão agrupados no jar com os arquivos
Os recursos podem ser arquivos de origem ou arquivos gerados. |
generates_api
|
Se uma regra usar um processador de anotações que gera uma API, outras regras dependentes poderão se referir ao código gerado somente se as ações de compilação forem programadas após a regra de geração. Este atributo instrui o Bazel a introduzir restrições de programação quando --java_header_compilation estiver ativado. AVISO: esse atributo afeta o desempenho do build. Use-o apenas se necessário. |
javacopts
|
Essas opções do compilador são transmitidas para javac depois das opções do compilador global |
neverlink
|
tools.jar para qualquer item
em execução em um JDK padrão.
Observe que Se a biblioteca de tempo de execução for diferente da biblioteca de compilação, é necessário garantir que ela diferencie apenas em locais em que o JLS proíbe compiladores em linha (e que precisam manter todas as versões futuras do JLS). |
output_licenses
|
common attributes
.
|
plugins
|
java_plugin especificado neste 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
|
|
proguard_specs
|
android_binary , dependendo dessa biblioteca.
Os arquivos incluídos aqui precisam ter apenas regras idempotentes, como -dontnote, -dontwarn,
suposições de efeitos colaterais e regras que começam com -keep. Outras opções só podem aparecer nas
proguard_specs de android_binary para garantir mesclagens não automáticas.
|
resource_jars
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é removido de todos os arquivos no atributo
|
java_runtime
java_runtime(name, srcs, compatible_with, deprecation, distribs, features, hermetic_srcs, java, java_home, lib_modules, licenses, restricted_to, tags, target_compatible_with, testonly, version, visibility)
Especifica a configuração de um ambiente de execução do Java.
Exemplos
java_runtime( name = "jdk-9-ea+153", srcs = glob(["jdk9-ea+153/**"]), java_home = "jdk9-ea+153", )
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para o destino. |
srcs
|
|
hermetic_srcs
|
|
java
|
|
java_home
|
srcs e java precisam estar vazios.
|
lib_modules
|
|
version
|
Runtime.version().feature() .
|
java_toolchain
java_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_workers, javacopts, jvm_opts, licenses, oneversion, 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 por meio do argumento --java_dataset. Normalmente, você não deve escrever esse tipo de regra, a menos que 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 |
Um nome exclusivo para o destino. |
android_lint_data
|
|
android_lint_jvm_opts
|
|
android_lint_opts
|
|
android_lint_package_configuration
|
|
android_lint_runner
|
|
bootclasspath
|
|
deps_checker
|
|
forcibly_disable_header_compilation
|
|
genclass
|
|
header_compiler
|
|
header_compiler_direct
|
Esta ferramenta não é compatível com o processamento de anotações. |
ijar
|
|
jacocorunner
|
|
java_runtime
|
|
javabuilder
|
|
javabuilder_data
|
|
javabuilder_jvm_opts
|
|
javac_supports_multiplex_workers
|
|
javac_supports_workers
|
|
javacopts
|
|
jvm_opts
|
|
oneversion
|
|
oneversion_whitelist
|
|
package_configuration
|
|
proguard_allowlister
|
|
resourcejar
|
|
singlejar
|
|
source_version
|
|
target_version
|
|
timezone_data
|
|
tools
|
|
turbine_data
|
|
turbine_jvm_opts
|
|
xlint
|
|