Reglas
- 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)
Compila un archivo Java (“archivo jar”), además de una secuencia de comandos shell wrapper con el mismo nombre que la regla. La secuencia de comandos de shell del wrapper usa una ruta de clase que incluye, entre otras cosas, un archivo jar para cada biblioteca de la que depende el objeto binario.
La secuencia de comandos del wrapper acepta varias marcas únicas. Consulta
//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
para obtener una lista de marcas configurables y variables de entorno que acepta el wrapper.
Destinos de salida implícitos
name.jar
: Es un archivo Java que contiene los archivos de clase y otros archivos. recursos correspondientes a las dependencias directas del objeto binario.name-src.jar
: Es un archivo que contiene las fuentes ("source jar").name_deploy.jar
: un archivo Java adecuado para la implementación (solo compilarse si se solicita explícitamente).Compilando el destino
<name>_deploy.jar
para tu regla crea un archivo jar autónomo con un manifiesto que permite ejecutarlo con el El comandojava -jar
o con el--singlejar
de la secuencia de comandos del wrapper de 12 a 1 con la nueva opción de compresión. Se prefiere el uso de la secuencia de comandos del wrapper en lugar dejava -jar
, ya que también pasa las marcas de JVM y las opciones cargar bibliotecas nativas.El jar de implementación contiene todas las clases que encontraría un cargador de clases Se buscó la ruta de clase desde la secuencia de comandos del wrapper del objeto binario de principio a fin. También que contiene las bibliotecas nativas necesarias para las dependencias. Se cargan automáticamente a la JVM durante el tiempo de ejecución.
Si el destino especifica un selector. entonces, en lugar de ser un archivo JAR normal, el _deploy.jar será un binario nativo. Esto contendrá el selector y cualquier dependencia nativa (C++) de tu regla, todo vinculado en un objeto binario estático. Los bytes reales del archivo jar serán agregado a ese binario nativo, lo que crea un único BLOB binario que contiene ejecutable y el código Java. Puedes ejecutar el archivo jar resultante directamente como lo harías con cualquier objeto binario nativo.
name_deploy-src.jar
: Es un archivo que contiene las fuentes. recopilados a partir del cierre transitivo del objetivo. Estos coincidirán con las clases de ladeploy.jar
, excepto cuando los archivos jar no tienen ninguno de origen coincidente.
No se permite un atributo deps
en una regla java_binary
sin
srcs
esta regla requiere
main_class
proporcionado por
runtime_deps
.
En el siguiente fragmento de código, se muestra un error común:
java_binary( name = "DontDoThis", srcs = [ ...,"GeneratedJavaFile.java"
, # a generated .java file ], deps = [":generating_rule",
], # rule that generates that file )
En su lugar, haz lo siguiente:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. Es una buena práctica usar el nombre del archivo fuente que es el punto de entrada principal de la una aplicación sin importar la extensión. Por ejemplo, si tu punto de entrada se llama Main.java , entonces tu nombre podría ser Main .
|
deps
|
deps en
Atributos típicos definidos por
la mayoría de las reglas de compilación.
|
srcs
|
Se compilan los archivos de origen de tipo
Se descomprimen y compilan los archivos fuente de tipo
Reglas: Si la regla (generalmente
Este argumento casi siempre es obligatorio, excepto si un
El atributo |
resources
|
Si se especifican los recursos, se agruparán en el jar con el archivo
Archivos Los recursos pueden ser archivos fuente o generados. |
classpath_resources
|
Lista de recursos que deben estar ubicados en la raíz del árbol de Java. De este atributo
Su único propósito es admitir bibliotecas de terceros que requieran que sus recursos se
que se encuentra en la ruta de clase como |
create_executable
|
launcher o main_class
de configuración.
|
deploy_env
|
java_binary que representan la implementación
para este objeto binario.
Establece este atributo cuando compiles un complemento que cargará otro
java_binary Configurar este atributo excluye todas las dependencias de la ruta de clase del entorno de ejecución (y el archivo jar de implementación) de este objeto binario que se comparten el objeto binario y los objetivos especificados en deploy_env .
|
deploy_manifest_lines
|
META-INF/manifest.mf generado para la
Objetivo de *_deploy.jar . El contenido de este atributo no está sujeto
por "Make variable".
|
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones globales del compilador. |
jvm_flags
|
La secuencia de comandos del wrapper para un objeto binario de Java incluye una definición de CLASSPATH
(para encontrar todos los archivos jar dependientes) y, luego, invoca el intérprete de Java correcto.
La línea de comandos que genera la secuencia de comandos del wrapper incluye el nombre del
la clase principal seguida de un elemento Ten en cuenta que este atributo no tiene efecto en |
launcher
|
bin/java normal incluido con el JDK.
El objetivo debe ser una cc_binary . Cualquier cc_binary que
implementa
La API de Java Invocation se puede especificar como un valor para este atributo.
De forma predeterminada, Bazel usará el iniciador de JDK normal (bin/java o java.exe). La marca de Bazel Ten en cuenta que tus dependencias nativas (C++, SWIG, JNI) se compilarán de manera diferente. dependiendo de si usas el selector de JDK o algún otro selector:
Cuando se usa cualquier selector que no sea el predeterminado del JDK, el formato
de los cambios de salida |
main_class
|
main() para usar como punto de entrada.
Si una regla usa esta opción, no necesita una lista de srcs=[...] .
Por lo tanto, con este atributo se puede hacer un ejecutable desde una biblioteca de Java que ya
Contiene uno o más métodos main() .
El valor de este atributo es un nombre de clase, no un archivo de origen. La clase debe ser
disponible en el tiempo de ejecución: puede ser compilada por esta regla (de |
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que esta regla
la infraestructura. Una biblioteca también puede heredar complementos de dependencias que usan
exported_plugins Recursos
que genera el complemento se incluirán en el archivo jar resultante de esta regla.
|
resource_jars
|
|
resource_strip_prefix
|
Si se especifica, este prefijo de ruta de acceso se quita de cada archivo en el |
runtime_deps
|
deps comunes, estos aparecerán en la ruta de clase del tiempo de ejecución, pero, a diferencia de
no en la ruta de clase del tiempo de compilación. Las dependencias que se necesitan solo en el entorno de ejecución
que se enumeran aquí. Las herramientas de análisis de dependencias deben ignorar los objetivos que aparecen en ambos
runtime_deps y deps .
|
stamp
|
Los objetos binarios sellados no se vuelven a compilar, a menos que cambien sus dependencias. |
use_launcher
|
Si este atributo se establece en falso,
launcher y los atributos relacionados
marca |
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) como la
punto de entrada principal de un programa de Java y proporcionaremos la clase de prueba
al ejecutor de pruebas como un valor de bazel.test_suite
del sistema.
Puedes usar esto para anular el valor predeterminado
que consiste en usar un ejecutor de pruebas para
java_test reglas,
y no para las reglas java_binary . Es poco probable
querrán hacer esto. Un uso es para AllTest
reglas invocadas por otra regla (para configurar una base de datos
antes de ejecutar las pruebas, por ejemplo). El AllTest
debe declararse como java_binary , pero no debe
sigue usando el ejecutor de pruebas como punto de entrada principal.
El nombre de una clase del ejecutor de pruebas se puede anular con el 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)
Esta regla permite el uso de archivos .jar
precompilados como
bibliotecas para java_library
y
java_binary
reglas.
Ejemplos
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 |
Un nombre único para este destino. |
deps
|
|
constraints
|
|
exports
|
|
jars
|
|
neverlink
|
tools.jar para cualquier elemento que se ejecute
un JDK estándar.
|
proguard_specs
|
android_binary según la biblioteca.
Los archivos incluidos aquí solo deben tener reglas idempotentes, es decir, -dontnote, -dontwarn,
asume efectos secundarios y reglas que comienzan con -keep. Otras opciones solo pueden aparecer en
Proguard_specs de android_binary para garantizar combinaciones no tautológicas.
|
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 regla compila y vincula fuentes en un archivo .jar
.
Destinos de salida implícitos
libname.jar
: Es un archivo de Java que contiene los archivos de clase.libname-src.jar
: Es un archivo que contiene las fuentes ("source jar").
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
deps en
Atributos típicos definidos por
la mayoría de las reglas de compilación.
Los archivos jar creados por las reglas de
Por el contrario, los destinos del atributo |
srcs
|
Se compilan los archivos de origen de tipo
Se descomprimen y compilan los archivos fuente de tipo
Reglas: Si la regla (generalmente
Este argumento casi siempre es obligatorio, excepto si un
El atributo |
data
|
data en
Atributos típicos definidos por
la mayoría de las reglas de compilación.
Cuando se compila un |
resources
|
Si se especifican los recursos, se agruparán en el jar con el archivo
Archivos Los recursos pueden ser archivos fuente o generados. |
exported_plugins
|
java_plugin (p.ej., anotación
procesadores) para exportarlos a bibliotecas que dependen directamente de ella.
La lista especificada de |
exports
|
Aquí, las reglas estarán disponibles para las reglas superiores, como si las superiores
dependía de estas reglas. Esto no se aplica a
Resumen: Una regla X puede acceder al código en Y si existe una dependencia.
ruta entre ellas que comienza con un borde
Supongamos que A depende de B, y B depende de C. En este caso,
C es una dependencia transitiva de A, por lo que cambiar las fuentes de C y recompilar A
volver a compilar todo correctamente. Sin embargo, A no podrá usar clases en C. Permitir
que, ya sea A debe declarar C en su El cierre de las bibliotecas exportadas está disponible para todas las reglas superiores directas. Toma un poco ejemplo diferente: A depende de B, B depende de C y D, y también exporta C, pero no D. Ahora A tiene acceso a C, pero no a D. Ahora, si C y D exportaron algunas bibliotecas, C' y D' respectivamente, A solo podría acceder a C' pero no la D'.
Importante: Una regla exportada no es una dependencia normal. Volviendo al ejemplo anterior,
si B exporta C y quiere usar también C, también tiene que enumerarlo en su propio
|
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones globales del compilador. |
neverlink
|
tools.jar para cualquier elemento
que se ejecuta en un JDK estándar.
Ten en cuenta que Si la biblioteca de tiempo de ejecución difiere de la biblioteca de compilación, debes asegurarte de que se diferencia solo en los lugares en los que JLS prohíbe que los compiladores se integren (y que deben conservarse para todas las versiones futuras del JLS). |
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que esta regla
la infraestructura. Una biblioteca también puede heredar complementos de dependencias que usan
exported_plugins Recursos
que genera el complemento se incluirán en el archivo jar resultante de esta regla.
|
proguard_specs
|
android_binary según la biblioteca.
Los archivos incluidos aquí solo deben tener reglas idempotentes, es decir, -dontnote, -dontwarn,
asume efectos secundarios y reglas que comienzan con -keep. Otras opciones solo pueden aparecer en
Proguard_specs de android_binary para garantizar combinaciones no tautológicas.
|
resource_jars
|
|
resource_strip_prefix
|
Si se especifica, este prefijo de ruta de acceso se quita de cada archivo en el |
runtime_deps
|
deps comunes, estos aparecerán en la ruta de clase del tiempo de ejecución, pero, a diferencia de
no en la ruta de clase del tiempo de compilación. Las dependencias que se necesitan solo en el entorno de ejecución
que se enumeran aquí. Las herramientas de análisis de dependencias deben ignorar los objetivos que aparecen en ambos
runtime_deps y 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
genera código Java a partir de archivos .proto
.
deps
debe apuntar a las reglas proto_library
.
Ejemplo:
java_library( name = "lib", deps = [":foo"], ) java_lite_proto_library( name = "foo", deps = [":bar"], ) proto_library( name = "bar", )
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
proto_library
las reglas para generar 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
genera código Java a partir de archivos .proto
.
deps
debe apuntar a las reglas proto_library
.
Ejemplo:
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 |
Un nombre único para este destino. |
deps
|
proto_library
las reglas para generar 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)
Una regla java_test()
compila una prueba de Java. Una prueba es un wrapper binario que rodea tu
código de prueba. Se invoca el método principal del ejecutor de pruebas en lugar de que se compile la clase principal.
Destinos de salida implícitos
name.jar
: Es un archivo de Java.name_deploy.jar
: Es un archivo Java adecuado. para su implementación. (Solo se compila si se solicita explícitamente). Consulta la descripción delname_deploy.jar
resultado de java_binary para obtener más información.
Consulta la sección sobre argumentos de java_binary(). Esta regla también admite todos los atributos comunes a todas las reglas de prueba (*_test).
Ejemplos
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 |
Un nombre único para este destino. |
deps
|
deps en
Atributos típicos definidos por
la mayoría de las reglas de compilación.
|
srcs
|
Se compilan los archivos de origen de tipo
Se descomprimen y compilan los archivos fuente de tipo
Reglas: Si la regla (generalmente
Este argumento casi siempre es obligatorio, excepto si un
El atributo |
resources
|
Si se especifican los recursos, se agruparán en el jar con el archivo
Archivos Los recursos pueden ser archivos fuente o generados. |
classpath_resources
|
Lista de recursos que deben estar ubicados en la raíz del árbol de Java. De este atributo
Su único propósito es admitir bibliotecas de terceros que requieran que sus recursos se
que se encuentra en la ruta de clase como |
create_executable
|
launcher o main_class
de configuración.
|
deploy_manifest_lines
|
META-INF/manifest.mf generado para la
Objetivo de *_deploy.jar . El contenido de este atributo no está sujeto
por "Make variable".
|
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones globales del compilador. |
jvm_flags
|
La secuencia de comandos del wrapper para un objeto binario de Java incluye una definición de CLASSPATH
(para encontrar todos los archivos jar dependientes) y, luego, invoca el intérprete de Java correcto.
La línea de comandos que genera la secuencia de comandos del wrapper incluye el nombre del
la clase principal seguida de un elemento Ten en cuenta que este atributo no tiene efecto en |
launcher
|
bin/java normal incluido con el JDK.
El objetivo debe ser una cc_binary . Cualquier cc_binary que
implementa
La API de Java Invocation se puede especificar como un valor para este atributo.
De forma predeterminada, Bazel usará el iniciador de JDK normal (bin/java o java.exe). La marca de Bazel Ten en cuenta que tus dependencias nativas (C++, SWIG, JNI) se compilarán de manera diferente. dependiendo de si usas el selector de JDK o algún otro selector:
Cuando se usa cualquier selector que no sea el predeterminado del JDK, el formato
de los cambios de salida |
main_class
|
main() para usar como punto de entrada.
Si una regla usa esta opción, no necesita una lista de srcs=[...] .
Por lo tanto, con este atributo se puede hacer un ejecutable desde una biblioteca de Java que ya
Contiene uno o más métodos main() .
El valor de este atributo es un nombre de clase, no un archivo de origen. La clase debe ser
disponible en el tiempo de ejecución: puede ser compilada por esta regla (de |
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que esta regla
la infraestructura. Una biblioteca también puede heredar complementos de dependencias que usan
exported_plugins Recursos
que genera el complemento se incluirán en el archivo jar resultante de esta regla.
|
resource_jars
|
|
resource_strip_prefix
|
Si se especifica, este prefijo de ruta de acceso se quita de cada archivo en el |
runtime_deps
|
deps comunes, estos aparecerán en la ruta de clase del tiempo de ejecución, pero, a diferencia de
no en la ruta de clase del tiempo de compilación. Las dependencias que se necesitan solo en el entorno de ejecución
que se enumeran aquí. Las herramientas de análisis de dependencias deben ignorar los objetivos que aparecen en ambos
runtime_deps y deps .
|
stamp
|
Los objetos binarios sellados no se vuelven a compilar, a menos que cambien sus dependencias. |
test_class
|
De forma predeterminada, si este argumento no está definido, se usa el modo heredado y se
en su lugar, se usan argumentos de prueba. Establece la marca
Este atributo especifica el nombre de una clase Java que ejecutará
esta prueba. No es común establecer esta configuración. Si se omite este argumento,
se inferirá mediante el
Para JUnit3, la clase de prueba debe ser una subclase de
Este atributo permite que varias reglas |
use_launcher
|
Si este atributo se establece en falso,
launcher y los atributos relacionados
marca |
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) como la
punto de entrada principal de un programa de Java y proporcionaremos la clase de prueba
al ejecutor de pruebas como un valor de bazel.test_suite
del sistema.
Puedes usar esto para anular el valor predeterminado
que consiste en usar un ejecutor de pruebas para
java_test reglas,
y no para las reglas java_binary . Es poco probable
querrán hacer esto. Un uso es para AllTest
reglas invocadas por otra regla (para configurar una base de datos
antes de ejecutar las pruebas, por ejemplo). El AllTest
debe declararse como java_binary , pero no debe
sigue usando el ejecutor de pruebas como punto de entrada principal.
El nombre de una clase del ejecutor de pruebas se puede anular con el 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)
Configuración que se aplica a un conjunto de paquetes.
Las configuraciones se pueden agregar
java_toolchain.javacopts
Ejemplo:
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 |
Un nombre único para este destino. |
data
|
|
javacopts
|
|
packages
|
package_group
al que se debe aplicar la configuración.
|
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 los complementos para el compilador de Java que ejecuta Bazel. Por el momento,
Solo los complementos admitidos son procesadores de anotaciones. Una java_library
o
La regla java_binary
puede ejecutar complementos dependiendo de ellos a través del plugins
.
. Un java_library
también puede exportar automáticamente complementos a bibliotecas que
depender directamente de él
exported_plugins
Destinos de salida implícitos
libname.jar
: Es un archivo de Java.
Los argumentos son idénticos a java_library
, excepto
para la adición del argumento processor_class
.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
deps en
Atributos típicos definidos por
la mayoría de las reglas de compilación.
Los archivos jar creados por las reglas de
Por el contrario, los destinos del atributo |
srcs
|
Se compilan los archivos de origen de tipo
Se descomprimen y compilan los archivos fuente de tipo
Reglas: Si la regla (generalmente
Este argumento casi siempre es obligatorio, excepto si un
El atributo |
data
|
data en
Atributos típicos definidos por
la mayoría de las reglas de compilación.
Cuando se compila un |
resources
|
Si se especifican los recursos, se agruparán en el jar con el archivo
Archivos Los recursos pueden ser archivos fuente o generados. |
generates_api
|
Si una regla usa un procesador de anotaciones que genera API, otras reglas según el código, puede hacer referencia al código generado solo si su Las acciones de compilación se programan después de la regla de generación. Esta le indica a Bazel que introduzca restricciones de programación cuando --java_header_compilation habilitado. ADVERTENCIA: Este atributo afecta la compilación su rendimiento, utilícelo solo si es necesario. |
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones globales del compilador. |
neverlink
|
tools.jar para cualquier elemento
que se ejecuta en un JDK estándar.
Ten en cuenta que Si la biblioteca de tiempo de ejecución difiere de la biblioteca de compilación, debes asegurarte de que se diferencia solo en los lugares en los que JLS prohíbe que los compiladores se integren (y que deben conservarse para todas las versiones futuras del JLS). |
output_licenses
|
common attributes
.
|
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que esta regla
la infraestructura. Una biblioteca también puede heredar complementos de dependencias que usan
exported_plugins Recursos
que genera el complemento se incluirán en el archivo jar resultante de esta regla.
|
processor_class
|
|
proguard_specs
|
android_binary según la biblioteca.
Los archivos incluidos aquí solo deben tener reglas idempotentes, es decir, -dontnote, -dontwarn,
asume efectos secundarios y reglas que comienzan con -keep. Otras opciones solo pueden aparecer en
Proguard_specs de android_binary para garantizar combinaciones no tautológicas.
|
resource_jars
|
|
resource_strip_prefix
|
Si se especifica, este prefijo de ruta de acceso se quita de cada archivo en el |
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 la configuración para un entorno de ejecución de Java.
Ejemplo:
java_runtime( name = "jdk-9-ea+153", srcs = glob(["jdk9-ea+153/**"]), java_home = "jdk9-ea+153", )
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
srcs
|
|
hermetic_srcs
|
|
java
|
|
java_home
|
srcs y java deben estar vacíos.
|
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 la configuración del compilador Java. La cadena de herramientas que se debe usar se puede cambiar con el argumento --java_toolchain. Por lo general, no debes escribir ese tipo de reglas, a menos que desees ajustar tu compilador de Java.
Ejemplos
Un ejemplo sencillo sería el siguiente:
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 |
Un nombre único 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
|
Esta herramienta no admite el procesamiento de anotaciones. |
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
|
|