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
binario_java
Ver el origen de las reglasjava_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 de 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 aceptadas por el wrapper.
Objetivos de salida implícitos
name.jar
: Es un archivo de Java que contiene los archivos de clase y otros recursos correspondientes a las dependencias directas del objeto binario.name-src.jar
: Es un archivo que contiene las fuentes ("jar o fuente").name_deploy.jar
: Es un archivo de Java adecuado para la implementación (solo compilado si se solicita de manera explícita).Cuando se compila el destino
<name>_deploy.jar
para la regla, se crea un archivo jar autónomo con un manifiesto que permite que se ejecute con el comandojava -jar
o con la opción--singlejar
de la secuencia de comandos del wrapper. Se prefiere usar la secuencia de comandos wrapper quejava -jar
, ya que también pasa las marcas JVM y las opciones para cargar bibliotecas nativas.El archivo jar de implementación contiene todas las clases que encontraría un cargador de clases que buscaron en la ruta de clase desde la secuencia de comandos wrapper del objeto binario de principio a fin. También contiene las bibliotecas nativas necesarias para las dependencias. Estos se cargan de forma automática en la JVM durante el tiempo de ejecución.
Si el objetivo especifica un atributo launcher, en lugar de ser un archivo JAR normal, _deploy.jar será un objeto binario nativo. Este contendrá el selector y cualquier dependencia nativa (C++) de tu regla, todas vinculadas a un objeto binario estático. Los bytes del archivo jar real se adjuntarán a ese objeto binario nativo, lo que creará un solo BLOB binario que contendrá el código 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 recopiladas del cierre transitivo del destino. Estas coincidirán con las clases dedeploy.jar
, excepto en los casos en que los archivos jar no tengan un jar fuente original que coincida.
No se permite el atributo deps
en una regla java_binary
sin srcs
. Esta regla requiere una main_class
proporcionada por runtime_deps
.
En el siguiente fragmento de código, se ilustra un error común:
java_binary( name = "DontDoThis", srcs = [ ...,"GeneratedJavaFile.java"
, # a generated .java file ], deps = [":generating_rule",
], # rule that generates that file )
Haz lo siguiente:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Argumentos
Atributos | |
---|---|
name |
Es un nombre único para este destino. Se recomienda usar el nombre del archivo fuente que es el punto de entrada principal de la aplicación (menos la extensión). Por ejemplo, si tu punto de entrada se llama Main.java , 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 del tipo
Se descomprimen y compilan los archivos de origen de tipo
Reglas: Si la regla (por lo general,
Este argumento casi siempre es obligatorio, excepto si un atributo |
resources
|
Si se especifican los recursos, se empaquetarán en el jar junto con los archivos Los recursos pueden ser archivos fuente o generados. |
classpath_resources
|
Una lista de recursos que deben estar ubicados en la raíz del árbol de Java. El único propósito de este atributo es admitir bibliotecas de terceros que requieren que sus recursos se encuentren en la ruta de clase como exactamente |
create_executable
|
launcher o main_class .
|
deploy_env
|
java_binary que representan el entorno de implementación de este objeto binario.
Configura este atributo cuando se compila un complemento que cargará otro java_binary .La configuración de este atributo excluye todas las dependencias de la ruta de clase del entorno de ejecución (y el jar de implementación) de este objeto binario que se comparten entre este objeto y los destinos especificados en deploy_env .
|
deploy_manifest_lines
|
META-INF/manifest.mf generado para el destino *_deploy.jar . El contenido de este atributo no está sujeto a la sustitución de "Make variable".
|
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones del compilador global. |
jvm_flags
|
La secuencia de comandos wrapper de 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 de la clase principal seguido de un Ten en cuenta que este atributo no tiene efecto en los resultados de |
launcher
|
bin/java normal incluido con el JDK.
El objetivo debe ser un cc_binary . Se puede especificar cualquier cc_binary que implemente la
API de invocación de Java como valor para este atributo.
De forma predeterminada, Bazel usará el selector normal de JDK (bin/java o java.exe). La marca Ten en cuenta que tus dependencias nativas (C++, SWIG o JNI) se crearán de manera diferente según si usas el selector de JDK o algún otro:
Cuando se usa un selector que no sea el predeterminado del JDK, cambia el formato de la 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 de una biblioteca de Java que ya contenga 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 estar disponible en el entorno de ejecución: esta se puede compilar con esta regla (de |
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que se compile esta regla. Una biblioteca también puede heredar complementos de dependencias que usan exported_plugins . Los recursos
generados por el complemento se incluirán en el archivo jar resultante de esta regla.
|
resource_jars
|
|
resource_strip_prefix
|
Si se especifica, se quita este prefijo de ruta de acceso de cada archivo del atributo |
runtime_deps
|
deps común, estos aparecerán en la ruta de clase de tiempo de ejecución, pero, a diferencia de ellos, no en la ruta de clase de tiempo de compilación. Aquí se deben incluir las dependencias necesarias solo en el entorno de ejecución. Las herramientas de análisis de dependencia deben ignorar los destinos que aparecen en runtime_deps y deps .
|
stamp
|
Los objetos binarios con sellos no se vuelven a compilar, a menos que cambien sus dependencias. |
use_launcher
|
Si este atributo se establece como falso, se ignorarán el atributo launcher y la marca |
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) como punto de entrada principal para un programa de Java y proporciona la clase de prueba al ejecutor de pruebas como un valor de la propiedad del sistema bazel.test_suite .
Puedes usar esto a fin de anular el comportamiento predeterminado, que es usar el ejecutor de pruebas para reglas java_test , y no para reglas java_binary . Es poco probable que quieras hacer esto. Un uso es para las reglas de AllTest que invoca otra regla (por ejemplo, para configurar una base de datos antes de ejecutar las pruebas). La regla AllTest debe declararse como java_binary , pero igual debe usar el ejecutor de pruebas como punto de entrada principal.
El nombre de una clase de ejecutor de pruebas se puede anular con el atributo main_class .
|
java_import
Ver el origen de las reglasjava_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 reglas java_library
y java_binary
.
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 |
Es un nombre único para este destino. |
deps
|
|
constraints
|
|
exports
|
|
jars
|
|
neverlink
|
tools.jar para cualquier elemento que se ejecute en un JDK estándar.
|
proguard_specs
|
android_binary según esta biblioteca.
Los archivos que se incluyen aquí solo deben tener reglas idempotentes, es decir, -dontnote, -dontwarn, sumnosideeffects 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
Ver el origen de las reglasjava_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
.
Objetivos de salida implícitos
libname.jar
: Es un archivo de Java que contiene los archivos de la clase.libname-src.jar
: Es un archivo que contiene las fuentes ("jar o fuente").
Argumentos
Atributos | |
---|---|
name |
Es 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 que compilan las reglas de
Por el contrario, los objetivos del atributo |
srcs
|
Se compilan los archivos de origen del tipo
Se descomprimen y compilan los archivos de origen de tipo
Reglas: Si la regla (por lo general,
Este argumento casi siempre es obligatorio, excepto si un 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 empaquetarán en el jar junto con los archivos Los recursos pueden ser archivos fuente o generados. |
exported_plugins
|
java_plugin (p.ej., procesadores de anotaciones) para exportar a bibliotecas que dependen directamente de esta biblioteca.
La lista especificada de |
exports
|
Aquí, las reglas de listas los pondrán a disposición para las reglas superiores, como si los superiores dependieran de forma explícita de ellas. Esto no es así para el
Resumen: Una regla X puede acceder al código en Y si existe una ruta de dependencia entre ellos que comienza con un borde
Supongamos que A se basa en B y B se basa en C. En este caso, C es una dependencia transitiva de A, por lo que cambiar las fuentes de C y recompilar A recompilará correctamente todo. Sin embargo, A no podrá usar clases en C. A fin de permitir eso, A debe declarar C en su El cierre de las bibliotecas exportadas está disponible para todas las reglas superiores directas. Tomemos un ejemplo un poco 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. Si C y D exportaron algunas bibliotecas, C' y D' respectivamente, A solo podría acceder a C', pero no D'.
Importante: Una regla exportada no es una dependencia normal. De acuerdo con el ejemplo anterior, si B exporta C y desea usar C también, debe enumerarlo en su propio |
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones del compilador global. |
neverlink
|
tools.jar para cualquier elemento que se ejecute en un JDK estándar.
Ten en cuenta que Si la biblioteca del entorno de ejecución es diferente de la biblioteca de compilación, debes asegurarte de que solo se diferencie en los lugares donde el JLS prohíba la compilación de los compiladores (y eso debe mantenerse para todas las versiones futuras del JLS). |
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que se compile esta regla. Una biblioteca también puede heredar complementos de dependencias que usan exported_plugins . Los recursos
generados por el complemento se incluirán en el archivo jar resultante de esta regla.
|
proguard_specs
|
android_binary según esta biblioteca.
Los archivos que se incluyen aquí solo deben tener reglas idempotentes, es decir, -dontnote, -dontwarn, sumnosideeffects 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, se quita este prefijo de ruta de acceso de cada archivo del atributo |
runtime_deps
|
deps común, estos aparecerán en la ruta de clase de tiempo de ejecución, pero, a diferencia de ellos, no en la ruta de clase de tiempo de compilación. Aquí se deben incluir las dependencias necesarias solo en el entorno de ejecución. Las herramientas de análisis de dependencia deben ignorar los destinos que aparecen en runtime_deps y deps .
|
biblioteca_proto_java_lite
Ver el origen de las reglasjava_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 reglas de proto_library
.
Ejemplo:
java_library( name = "lib", deps = [":foo"], ) java_lite_proto_library( name = "foo", deps = [":bar"], ) proto_library( name = "bar", )
Argumentos
Atributos | |
---|---|
name |
Es un nombre único para este destino. |
deps
|
proto_library para las que se generará el código de Java.
|
java_proto_library
Ver el origen de las reglasjava_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 reglas de 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 |
Es un nombre único para este destino. |
deps
|
proto_library para las que se generará el código de Java.
|
prueba_java
Ver el origen de las reglasjava_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 alrededor de tu código de prueba. Se invoca al método principal del ejecutor de pruebas en lugar de la clase principal que se compila.
Objetivos de salida implícitos
name.jar
: Es un archivo de Java.name_deploy.jar
: Es un archivo de Java adecuado para la implementación. (Solo se compila si se solicita de manera explícita). Consulta la descripción del resultadoname_deploy.jar
de java_binary para obtener más detalles.
Consulta la sección sobre los argumentos 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 |
Es 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 del tipo
Se descomprimen y compilan los archivos de origen de tipo
Reglas: Si la regla (por lo general,
Este argumento casi siempre es obligatorio, excepto si un atributo |
resources
|
Si se especifican los recursos, se empaquetarán en el jar junto con los archivos Los recursos pueden ser archivos fuente o generados. |
classpath_resources
|
Una lista de recursos que deben estar ubicados en la raíz del árbol de Java. El único propósito de este atributo es admitir bibliotecas de terceros que requieren que sus recursos se encuentren en la ruta de clase como exactamente |
create_executable
|
launcher o main_class .
|
deploy_manifest_lines
|
META-INF/manifest.mf generado para el destino *_deploy.jar . El contenido de este atributo no está sujeto a la sustitución de "Make variable".
|
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones del compilador global. |
jvm_flags
|
La secuencia de comandos wrapper de 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 de la clase principal seguido de un Ten en cuenta que este atributo no tiene efecto en los resultados de |
launcher
|
bin/java normal incluido con el JDK.
El objetivo debe ser un cc_binary . Se puede especificar cualquier cc_binary que implemente la
API de invocación de Java como valor para este atributo.
De forma predeterminada, Bazel usará el selector normal de JDK (bin/java o java.exe). La marca Ten en cuenta que tus dependencias nativas (C++, SWIG o JNI) se crearán de manera diferente según si usas el selector de JDK o algún otro:
Cuando se usa un selector que no sea el predeterminado del JDK, cambia el formato de la 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 de una biblioteca de Java que ya contenga 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 estar disponible en el entorno de ejecución: esta se puede compilar con esta regla (de |
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que se compile esta regla. Una biblioteca también puede heredar complementos de dependencias que usan exported_plugins . Los recursos
generados por el complemento se incluirán en el archivo jar resultante de esta regla.
|
resource_jars
|
|
resource_strip_prefix
|
Si se especifica, se quita este prefijo de ruta de acceso de cada archivo del atributo |
runtime_deps
|
deps común, estos aparecerán en la ruta de clase de tiempo de ejecución, pero, a diferencia de ellos, no en la ruta de clase de tiempo de compilación. Aquí se deben incluir las dependencias necesarias solo en el entorno de ejecución. Las herramientas de análisis de dependencia deben ignorar los destinos que aparecen en runtime_deps y deps .
|
stamp
|
Los objetos binarios con sellos 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, en su lugar, se usan los argumentos de prueba. Configura la marca
Este atributo especifica el nombre de una clase de Java que ejecutará esta prueba. No es común establecer esto. 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 como falso, se ignorarán el atributo launcher y la marca |
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) como punto de entrada principal para un programa de Java y proporciona la clase de prueba al ejecutor de pruebas como un valor de la propiedad del sistema bazel.test_suite .
Puedes usar esto a fin de anular el comportamiento predeterminado, que es usar el ejecutor de pruebas para reglas java_test , y no para reglas java_binary . Es poco probable que quieras hacer esto. Un uso es para las reglas de AllTest que invoca otra regla (por ejemplo, para configurar una base de datos antes de ejecutar las pruebas). La regla AllTest debe declararse como java_binary , pero igual debe usar el ejecutor de pruebas como punto de entrada principal.
El nombre de una clase de ejecutor de pruebas se puede anular con el atributo main_class .
|
java_package_configuration
Ver el origen de las reglasjava_package_configuration(name, data, compatible_with, deprecation, distribs, features, javacopts, licenses, packages, restricted_to, tags, target_compatible_with, testonly, visibility)
Configuración para aplicar a un conjunto de paquetes.
Se pueden agregar parámetros de configuración a
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 |
Es un nombre único para este destino. |
data
|
|
javacopts
|
|
packages
|
package_group al que se debe aplicar la configuración.
|
java_plugin
Ver el origen de las reglasjava_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 del compilador de Java que ejecuta Bazel. Por el momento, los únicos complementos compatibles son los procesadores de anotaciones. Una regla java_library
o java_binary
puede ejecutar complementos según los atributos mediante el atributo plugins
. Un java_library
también puede exportar automáticamente complementos a bibliotecas que dependen directamente de él mediante exported_plugins
.
Objetivos de salida implícitos
libname.jar
: Es un archivo de Java.
Los argumentos son idénticos a java_library
, excepto por la adición del argumento processor_class
.
Argumentos
Atributos | |
---|---|
name |
Es 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 que compilan las reglas de
Por el contrario, los objetivos del atributo |
srcs
|
Se compilan los archivos de origen del tipo
Se descomprimen y compilan los archivos de origen de tipo
Reglas: Si la regla (por lo general,
Este argumento casi siempre es obligatorio, excepto si un 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 empaquetarán en el jar junto con los archivos Los recursos pueden ser archivos fuente o generados. |
generates_api
|
Si una regla usa un procesador de anotaciones que genera una API, otras reglas que dependen de él pueden hacer referencia al código generado solo si sus acciones de compilación están programadas después de la regla que lo genera. Este atributo indica a Bazel que introduzca restricciones de programación cuando se habilite --java_header_compilation. ADVERTENCIA: Este atributo afecta el rendimiento de la compilación; úsalo solo si es necesario. |
javacopts
|
Estas opciones del compilador se pasan a javac después de las opciones del compilador global. |
neverlink
|
tools.jar para cualquier elemento que se ejecute en un JDK estándar.
Ten en cuenta que Si la biblioteca del entorno de ejecución es diferente de la biblioteca de compilación, debes asegurarte de que solo se diferencie en los lugares donde el JLS prohíba la compilación de los compiladores (y eso debe mantenerse para todas las versiones futuras del JLS). |
output_licenses
|
common attributes
.
|
plugins
|
java_plugin especificado en este atributo se ejecutará cada vez que se compile esta regla. Una biblioteca también puede heredar complementos de dependencias que usan exported_plugins . Los recursos
generados por el complemento se incluirán en el archivo jar resultante de esta regla.
|
processor_class
|
|
proguard_specs
|
android_binary según esta biblioteca.
Los archivos que se incluyen aquí solo deben tener reglas idempotentes, es decir, -dontnote, -dontwarn, sumnosideeffects 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, se quita este prefijo de ruta de acceso de cada archivo del atributo |
tiempo de ejecución de java
Ver el origen de las reglasjava_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 la configuración de 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 |
Es un nombre único para este destino. |
srcs
|
|
default_cds
|
java_runtime . Cuando la hermética está habilitada para un destino java_binary y si el objetivo no proporciona su propio archivo de CDS mediante la especificación del atributo classlist , la CDS predeterminada de java_runtime se empaqueta en el archivo JAR de implementación hermética.
|
hermetic_srcs
|
|
java
|
|
java_home
|
srcs y java deben estar vacíos.
|
lib_modules
|
|
version
|
Runtime.version().feature() .
|
java_toolchain
Ver el origen de las reglasjava_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 de Java. La cadena de herramientas que se usará se puede cambiar a través del 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 simple 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 |
Es 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
|
|