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 (em inglês)
java_binário
Ver 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 ("jar file"), 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 da qual o binário depende.
O script de wrapper aceita várias sinalizações exclusivas. 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ícita
name.jar
: um arquivo Java, que contém 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 (só criado se explicitamente solicitado).A criação do destino
<name>_deploy.jar
para sua regra cria um arquivo jar autônomo com um manifesto que permite que ele seja executado com o comandojava -jar
ou com a opção--singlejar
do script de wrapper. O uso do script de wrapper é preferível ajava -jar
porque ele também transmite as sinalizações JVM e as opções para carregar bibliotecas nativas.O jar de implantação contém todas as classes que seriam encontradas por um classloader que pesquisou o caminho de classe 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 no tempo de execução.
Se seu destino especificar um atributo de tela de início, em vez de ser um arquivo JAR normal, o _deploy.jar será um binário nativo. Ele conterá a tela de início mais as dependências nativas (C++) da regra, todas vinculadas a um binário estático. Os bytes reais do arquivo jar 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 da mesma forma que você executaria 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 jars de origem correspondentes.
Um atributo deps
não é permitido em uma regra java_binary
sem srcs
. Essa regra requer 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 )
Faça o seguinte:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para este destino. É recomendável usar o nome do arquivo de origem que é o ponto de entrada principal do aplicativo, exceto a extensão. Por exemplo, se o ponto de entrada for chamado de Main.java , o nome poderá ser Main .
|
deps
|
deps em Atributos típicos definidos pela maioria das regras de compilação.
|
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 junto com os arquivos Os recursos podem ser arquivos de origem ou gerados. |
classpath_resources
|
Uma lista de recursos que precisam estar localizados na raiz da árvore java. A única finalidade desse atributo é oferecer compatibilidade com bibliotecas de terceiros que exigem que os recursos sejam encontrados no caminho de classe exatamente como |
create_executable
|
launcher ou main_class forem definidos.
|
deploy_env
|
java_binary que representam o ambiente de implantação para esse binário.
Defina esse atributo ao criar um plug-in que será carregado por outro java_binary .Definir esse 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 "Tornar variável".
|
javacopts
|
Essas opções do compilador são passadas para javac após as opções do compilador global. |
jvm_flags
|
O script de wrapper de um binário Java inclui uma definição de 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 seguida de Esse atributo não tem efeito nas saídas |
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 especificado como um valor para esse atributo.
Por padrão, o Bazel usa o iniciador normal do JDK (bin/java ou java.exe). A sinalização do Bazel 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
|
main() a ser usado como ponto de entrada.
Se uma regra usar essa opção, ela não precisará de uma lista de 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 no tempo de execução: ela pode ser compilada por esta regra (de |
plugins
|
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
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é retirado de todos os arquivos no atributo |
runtime_deps
|
deps comum, elas aparecerão no caminho de classe do tempo de execução, mas ao contrário delas, não no caminho de classe do tempo de compilação. As dependências necessárias apenas no momento da execução devem 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 carimbados não são recriados, a menos que as dependências mudem. |
use_launcher
|
Se 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 do executor como um valor da propriedade do sistema bazel.test_suite .
Use-o para modificar 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ê faça isso. Um dos usos é para regras AllTest 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 deve usar o executor de teste como o ponto de entrada principal.
O nome de uma classe de execução de teste pode ser modificado com o atributo main_class .
|
java_importação
Ver 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 |
Um nome exclusivo para este destino. |
deps
|
|
constraints
|
|
exports
|
|
jars
|
|
neverlink
|
tools.jar para tudo que for executado em um JDK padrão.
|
proguard_specs
|
android_binary , dependendo desta biblioteca.
Os arquivos incluídos aqui precisam ter apenas regras idempotentes, ou seja, -dontnote, -dontwarn, pressnosideeffects e regras que comecem com -keep. Outras opções só podem aparecer no proguard_specs de android_binary , para garantir mesclagens não tautológicas.
|
runtime_deps
|
|
srcjar
|
|
biblioteca_java
Ver 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 as origens em um arquivo .jar
.
Destinos de saída implícita
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 |
Um nome exclusivo para este destino. |
deps
|
deps em Atributos típicos definidos pela maioria das regras de compilação.
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 compilação.
Ao criar um |
resources
|
Se os recursos forem especificados, eles serão agrupados no jar junto com os arquivos Os recursos podem ser arquivos de origem ou 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
|
As regras de listagem aqui as tornarão disponíveis para as regras mãe, como se as mães dependessem explicitamente
dessas regras. Isso não é verdade para
Resumo: uma regra X pode acessar o código em Y se existir 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 A recriará corretamente tudo. 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ães 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. No exemplo anterior, se B exportar C e quiser usar C, ela precisará listá-la no próprio |
javacopts
|
Essas opções do compilador são passadas para javac após as opções do compilador global. |
neverlink
|
tools.jar para tudo que é executado em um JDK padrão.
Observe que Se a biblioteca do ambiente de execução for diferente da biblioteca de compilação, você precisará garantir que ela seja diferente apenas dos locais em que o JLS proíbe os compiladores de ficar em linha (e isso precisa ser aplicado a todas as versões futuras do JLS). |
plugins
|
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
|
android_binary , dependendo desta biblioteca.
Os arquivos incluídos aqui precisam ter apenas regras idempotentes, ou seja, -dontnote, -dontwarn, pressnosideeffects e regras que comecem com -keep. Outras opções só podem aparecer no proguard_specs de android_binary , para garantir mesclagens não tautológicas.
|
resource_jars
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é retirado de todos os arquivos no atributo |
runtime_deps
|
deps comum, elas aparecerão no caminho de classe do tempo de execução, mas ao contrário delas, não no caminho de classe do tempo de compilação. As dependências necessárias apenas no momento da execução devem 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
Ver 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 a partir de 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 |
Um nome exclusivo para este destino. |
deps
|
proto_library para as quais gerar código Java.
|
java_proto_library
Ver 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 a partir de 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 |
Um nome exclusivo para este destino. |
deps
|
proto_library para as quais gerar código Java.
|
teste_java
Ver 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 que está sendo compilada.
Destinos de saída implícita
name.jar
: um arquivo Java.name_deploy.jar
: um arquivo Java adequado para implantação. (Somente criado se explicitamente solicitado.) Para mais detalhes, veja a descrição da saídaname_deploy.jar
de java_binary.
Consulte a seção sobre argumentos java_binary(). Essa regra também é compatível com 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 este destino. |
deps
|
deps em Atributos típicos definidos pela maioria das regras de compilação.
|
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 junto com os arquivos Os recursos podem ser arquivos de origem ou gerados. |
classpath_resources
|
Uma lista de recursos que precisam estar localizados na raiz da árvore java. A única finalidade desse atributo é oferecer compatibilidade com bibliotecas de terceiros que exigem que os recursos sejam encontrados no caminho de classe exatamente como |
create_executable
|
launcher ou main_class forem 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 "Tornar variável".
|
javacopts
|
Essas opções do compilador são passadas para javac após as opções do compilador global. |
jvm_flags
|
O script de wrapper de um binário Java inclui uma definição de 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 seguida de Esse atributo não tem efeito nas saídas |
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 especificado como um valor para esse atributo.
Por padrão, o Bazel usa o iniciador normal do JDK (bin/java ou java.exe). A sinalização do Bazel 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
|
main() a ser usado como ponto de entrada.
Se uma regra usar essa opção, ela não precisará de uma lista de 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 no tempo de execução: ela pode ser compilada por esta regra (de |
plugins
|
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
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é retirado de todos os arquivos no atributo |
runtime_deps
|
deps comum, elas aparecerão no caminho de classe do tempo de execução, mas ao contrário delas, não no caminho de classe do tempo de compilação. As dependências necessárias apenas no momento da execução devem 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 carimbados não são recriados, a menos que as dependências mudem. |
test_class
|
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
|
Se 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 do executor como um valor da propriedade do sistema bazel.test_suite .
Use-o para modificar 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ê faça isso. Um dos usos é para regras AllTest 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 deve usar o executor de teste como o ponto de entrada principal.
O nome de uma classe de execução de teste pode ser modificado com o atributo main_class .
|
java_package_configuration
Ver 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 a ser aplicada a um conjunto de pacotes.
As configurações podem ser adicionadas a 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 |
Um nome exclusivo para este destino. |
data
|
|
javacopts
|
|
packages
|
package_group s ao qual a configuração será aplicada.
|
plug-in java
Ver 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, os únicos tipos compatíveis de plug-ins são os processadores de anotações. Uma regra java_library
ou java_binary
pode executar plug-ins dependendo deles pelo atributo plugins
. Um java_library
também pode exportar plug-ins automaticamente para bibliotecas que dependem diretamente dele usando exported_plugins
.
Destinos de saída implícita
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 este destino. |
deps
|
deps em Atributos típicos definidos pela maioria das regras de compilação.
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 compilação.
Ao criar um |
resources
|
Se os recursos forem especificados, eles serão agrupados no jar junto com os arquivos Os recursos podem ser arquivos de origem ou gerados. |
generates_api
|
Se uma regra usar um processador de anotação de geração de API, outras regras que dependem dela poderão se referir ao código gerado apenas 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_compile está ativado. AVISO: esse atributo afeta o desempenho do build. Use-o somente se necessário. |
javacopts
|
Essas opções do compilador são passadas para javac após as opções do compilador global. |
neverlink
|
tools.jar para tudo que é executado em um JDK padrão.
Observe que Se a biblioteca do ambiente de execução for diferente da biblioteca de compilação, você precisará garantir que ela seja diferente apenas dos locais em que o JLS proíbe os compiladores de ficar em linha (e isso precisa ser aplicado a todas as versões futuras do JLS). |
output_licenses
|
common attributes
.
|
plugins
|
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
|
|
proguard_specs
|
android_binary , dependendo desta biblioteca.
Os arquivos incluídos aqui precisam ter apenas regras idempotentes, ou seja, -dontnote, -dontwarn, pressnosideeffects e regras que comecem com -keep. Outras opções só podem aparecer no proguard_specs de android_binary , para garantir mesclagens não tautológicas.
|
resource_jars
|
|
resource_strip_prefix
|
Se especificado, esse prefixo de caminho é retirado de todos os arquivos no atributo |
java_runtime
Ver origem da regrajava_runtime(name, srcs, compatible_with, default_cds, 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 tempo 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 |
Um nome exclusivo para este destino. |
srcs
|
|
default_cds
|
java_runtime hermético. Quando o hermético é ativado para um destino java_binary e se o destino não fornece seu próprio arquivo CDS especificando o atributo classlist , o CDS padrão java_runtime é empacotado no JAR de implantação hermético.
|
hermetic_srcs
|
|
java
|
|
java_home
|
srcs e java precisam estar vazios.
|
lib_modules
|
|
version
|
Runtime.version().feature() .
|
conjunto de ferramentas java
Ver 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_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_toolchain. Normalmente, você não precisa escrever esse tipo de regra, a menos que queira ajustar o 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 este 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
|
Essa 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
|
|