java_common

Denunciar un problema Ver código fuente Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Utilidades para la compatibilidad con la compilación de Java en Starlark.

Miembros

BootClassPathInfo

Provider java_common.BootClassPathInfo

El proveedor que se usa para proporcionar información de classpath de inicio

compile

struct java_common.compile(ctx, *, source_jars=[], source_files=[], output, output_source_jar=None, javac_opts=[], deps=[], runtime_deps=[], exports=[], plugins=[], exported_plugins=[], native_libraries=[], annotation_processor_additional_inputs=[], annotation_processor_additional_outputs=[], strict_deps='ERROR', java_toolchain, bootclasspath=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

Compila archivos fuente o JAR de Java a partir de la implementación de una regla de Starlark y muestra un proveedor que representa los resultados de la compilación y se puede agregar al conjunto de proveedores que emite esta regla.

Parámetros

Parámetro Descripción
ctx ctx; obligatorio
Es el contexto de la regla.
source_jars Secuencia de archivos. El valor predeterminado es []
. Es una lista de los archivos JAR que se compilarán. Se debe especificar al menos uno de source_jars o source_files.
source_files Secuencia de archivos. El valor predeterminado es []
. Es una lista de los archivos fuente de Java que se compilarán. Se debe especificar al menos uno de source_jars o source_files.
output Archivo; obligatorio
output_source_jar Archivo o None; El valor predeterminado es None
El jar de origen de salida. Si no se establece, el valor predeterminado es "{output_jar}-src.jar".
javac_opts Secuencia de cadenas. El valor predeterminado es []
. Es una lista de las opciones de javac deseadas.
deps Secuencia de struct. El valor predeterminado es []
. Es una lista de dependencias.
runtime_deps Secuencia de struct. El valor predeterminado es []
. Es una lista de dependencias del tiempo de ejecución.
exports Secuencia de struct. El valor predeterminado es []
. Es una lista de exportaciones.
plugins secuencia de struct o secuencia de struct; el valor predeterminado es []
Una lista de complementos.
exported_plugins secuencia de struct o secuencia de struct; el valor predeterminado es []
Es una lista de complementos exportados.
native_libraries Secuencia de CcInfo. El valor predeterminado es []
. Dependencias de bibliotecas nativas de CC que se necesitan para esta biblioteca.
annotation_processor_additional_inputs secuencia de archivos; el valor predeterminado es []
Es una lista de entradas que tomará la acción de compilación de Java, además de las fuentes de Java para el procesamiento de anotaciones.
annotation_processor_additional_outputs secuencia de archivos. El valor predeterminado es []
. Es una lista de resultados que la acción de compilación de Java generará además del archivo JAR de clase del procesamiento de anotaciones.
strict_deps cadena; el valor predeterminado es 'ERROR'
Es una cadena que especifica cómo controlar las dependencias estrictas. Valores posibles: "OFF", "ERROR", "WARN" y "DEFAULT". Para obtener más información, consulta --strict_java_deps flag. By default 'ERROR'. .
java_toolchain Info; obligatorio
Un JavaToolchainInfo que se usará para esta compilación. Obligatorio.
bootclasspath El valor predeterminado es None
. Es un BootClassPathInfo que se usará para esta compilación. Si está presente, anula el bootclasspath asociado con la java_toolchain proporcionada.
sourcepath Secuencia de archivos. El valor predeterminado es []
.
resources Secuencia de archivos. El valor predeterminado es []
.
resource_jars Secuencia de archivos. El valor predeterminado es []
.
classpath_resources Secuencia de archivos. El valor predeterminado es []
.
bool; El valor predeterminado es False
enable_annotation_processing bool; El valor predeterminado es True
Inhabilita el procesamiento de anotaciones en esta compilación, lo que hace que se ignoren los procesadores de anotaciones proporcionados en los complementos o en los complementos exportados de las dependencias.
enable_compile_jar_action bool; El valor predeterminado es True
Habilita la compilación de encabezados o la creación de ijar. Si se establece como "False", se obliga el uso del archivo JAR de clase completa en las rutas de acceso de compilación de cualquier elemento dependiente. Esto se diseñó para que lo usen destinos que no sean de bibliotecas, como objetos binarios que no tienen dependencias.
add_exports secuencia de cadenas; el valor predeterminado es []
Permite que esta biblioteca acceda a la /determinada.
add_opens Secuencia de cadenas. El valor predeterminado es []
. Permite que esta biblioteca acceda de forma refleja a la /determinada.

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

Es la clave que se usa para recuperar el proveedor que contiene información sobre el entorno de ejecución de Java que se usa.

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

Es la clave que se usa para recuperar el proveedor que contiene información sobre la cadena de herramientas de Java que se usa.

combinar

struct java_common.merge(providers)

Combina los proveedores dados en un solo JavaInfo.

Parámetros

Parámetro Descripción
providers secuencia de struct; obligatorio
Es la lista de proveedores que se combinarán.

pack_sources

File java_common.pack_sources(actions, *, output_source_jar=None, sources=[], source_jars=[], java_toolchain)

Empaqueta fuentes y archivos JAR de origen en un solo archivo JAR de origen. Por lo general, el valor que se muestra se pasa a

JavaInfo#source_jar

Se requiere al menos uno de los parámetros output_jar o output_source_jar.

Parámetros

Parámetro Descripción
actions acciones; obligatorio
ctx.actions
output_source_jar Archivo o None; El valor predeterminado es None
El jar de origen de salida.
sources Secuencia de archivos. El valor predeterminado es []
. Es una lista de archivos fuente de Java que se empaquetarán en el archivo JAR fuente.
source_jars Secuencia de archivos. El valor predeterminado es []
. Es una lista de archivos JAR de origen que se empaquetarán en el archivo JAR de origen.
java_toolchain Info; obligatorio
Un JavaToolchainInfo que se usa para encontrar la herramienta ijar.

run_ijar

File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)

Ejecuta ijar en un jar y lo despoja de sus cuerpos de método. Esto ayuda a reducir la reconstrucción de los archivos JAR dependientes durante cualquier compilación nueva que consista solo en cambios simples en las implementaciones de métodos. Por lo general, el valor que se muestra se pasa a JavaInfo#compile_jar.

Parámetros

Parámetro Descripción
actions acciones; obligatorio
ctx.actions
jar Archivo: Obligatorio
Es el archivo JAR en el que se ejecutará ijar.
target_label Etiqueta o None; el valor predeterminado es None
Es una etiqueta de destino para sellar el jar. Se usa para la compatibilidad con add_dep. Por lo general, pasarías ctx.label para sellar el jar con la etiqueta de la regla actual.
java_toolchain Info; obligatorio
Un JavaToolchainInfo que se usa para encontrar la herramienta ijar.

stamp_jar

File java_common.stamp_jar(actions, *, jar, target_label, java_toolchain)

Sella un jar con una etiqueta de destino para la compatibilidad con add_dep. Por lo general, el valor que se muestra se pasa a JavaInfo#compile_jar. Prefiere usar run_ijar siempre que sea posible.

Parámetros

Parámetro Descripción
actions acciones; obligatorio
ctx.actions
jar Archivo; obligatorio
Es el archivo JAR en el que se ejecutará stamp_jar.
target_label Etiqueta: obligatoria
Es una etiqueta de destino para sellar el jar. Se usa para la compatibilidad con add_dep. Por lo general, pasarías ctx.label para sellar el jar con la etiqueta de la regla actual.
java_toolchain Info; obligatorio
Un JavaToolchainInfo que se usa para encontrar la herramienta stamp_jar.