java_common

报告问题 查看源代码 每夜 build · 7.4 .

Starlark 中支持 Java 编译的实用程序。

成员

BootClassPathInfo

Provider java_common.BootClassPathInfo

用于提供引导类路径信息的提供程序

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, host_javabase=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

从 Starlark 规则的实现编译 Java 源文件/JAR 文件,并返回一个表示编译结果且可添加到此规则发出的提供程序集的提供程序。

参数

参数 说明
ctx ctx; 必需
规则上下文。
source_jars Filesequence;默认值为 []
要编译的 JAR 的列表。应至少指定 source_jars 或 source_files 之一。
source_files Filesequence;默认值为 []
要编译的 Java 源文件列表。应至少指定 source_jars 和 source_files 中的一个。
output 文件;必需
output_source_jar 文件;或 None; 默认为 None
输出源 jar。如果未设置,则默认为 `{output_jar}-src.jar`。
javac_opts stringsequence;默认值为 []
所需 javac 选项的列表。
deps structsequence;默认值为 []
依赖项列表。
runtime_deps struct序列;默认值为 []
运行时依赖项的列表。
exports struct序列;默认为 []
导出内容列表。
plugins struct序列;或struct序列; 默认值为 []
插件列表。
exported_plugins struct序列;或struct序列; 默认值为 []
导出的插件列表。
native_libraries CcInfo序列;默认为 []
此库所需的 CC 原生库依赖项。
annotation_processor_additional_inputs 文件序列;默认为 []
除了用于注解处理的 Java 源代码之外,Java 编译操作将接受的输入列表。
annotation_processor_additional_outputs 文件序列;默认为 []
除了注解处理中的类 jar 之外,Java 编译操作还会输出以下输出列表。
strict_deps 字符串; 默认为 'ERROR'
一个字符串,用于指定如何处理严格依赖项。可能的值:“OFF”“ERROR”“WARN”和“DEFAULT”。如需了解详情,请参阅 --strict_java_deps flag. By default 'ERROR'.
java_toolchain Info; 必需
要用于此编译的 JavaToolchainInfo。必填。
bootclasspath 默认值为 None
要用于此编译的 BootClassPathInfo。如果存在,请替换与提供的 java_toolchain 关联的 bootclasspath。
host_javabase 默认值为 None
已弃用。此参数已弃用,很快就会被移除。请勿依赖此功能。此选项已通过 --incompatible_java_common_parameters 停用。使用此标志可验证您的代码是否与即将移除的 API 兼容。
已废弃:您可以删除此参数(host_javabase 随 java_toolchain 提供)
sourcepath 文件序列;默认值为 []
resources Filesequence;默认值为 []
resource_jars Filesequence;默认值为 []
classpath_resources 文件序列;默认值为 []
bool; 默认值为 False
enable_annotation_processing bool; 默认为 True
在此编译中停用注解处理,导致在插件或依赖项的 exported_plugins 中提供的任何注解处理程序都会被忽略。
enable_compile_jar_action bool; 默认为 True
启用头文件编译或 ijar 创建。如果设为 False,则会在任何依赖项的编译类路径中强制使用整个类 jar。这样做是为了供非库目标(例如没有依赖项的二进制文件)使用。
add_exports 字符串序列; 默认值为 []
允许此库访问给定的 /
add_opens 字符串序列;默认为 []
允许此库以反射方式访问给定的 /

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

用于检索提供程序(包含正在使用的 Java 运行时的相关信息)的键。

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

用于检索包含所用 Java 工具链相关信息的提供程序的键。

合并

struct java_common.merge(providers)

将给定提供程序合并到单个 JavaInfo 中。

参数

参数 说明
providers struct序列;必需
要合并的提供程序的列表。

pack_sources

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

将源代码和源 jar 文件打包到单个源 jar 文件中。返回值通常会传递给

JavaInfo#source_jar

必须至少提供 output_jar 或 output_source_jar 参数之一。

参数

参数 说明
actions actions; 必需
ctx.actions
output_jar 文件;或 None; 默认为 None
已废弃。此参数已弃用,很快就会被移除。请勿依赖此功能。在 --incompatible_java_common_parameters 中,此功能处于停用状态。使用此标志可验证您的代码是否与即将移除的 API 兼容。
已废弃:规则的输出 jar。用于命名生成的源 jar。该参数会将 output_source_jar 参数设置为 `{output_jar}-src.jar`。请改为直接使用 output_source_jar 参数。
output_source_jar File;或 None;默认值为 None
输出源 jar。
sources 文件序列;默认为 []
要打包到源 jar 中的 Java 源文件的列表。
source_jars 文件序列;默认为 []
要打包到源 jar 中的源 jar 的列表。
java_toolchain Info; 必需
JavaToolchainInfo,用于查找 ijar 工具。
host_javabase 默认值为 None
已废弃。此参数已弃用,很快就会被移除。请勿依赖它。在 --incompatible_java_common_parameters 中,此功能处于停用状态。使用此标记验证您的代码与其即将移除的兼容性兼容。
已废弃:您可以删除此参数(host_javabase 随 java_toolchain 提供)

run_ijar

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

对 jar 文件运行 ijar,从中剥离方法体。这有助于减少在仅更改方法实现的任何重新编译期间重新构建依赖项 jar 的次数。返回值通常会传递给 JavaInfo#compile_jar

参数

参数 说明
actions actions; 必需
ctx.actions
jar 文件; 必需
要运行 ijar 的 jar。
target_label 标签;或 None; 默认为 None
用于为 jar 添加标记的目标标签。用于 add_dep 支持。通常,您会传递 ctx.label 以使用当前规则的标签对 jar 进行加盖章。
java_toolchain Info; required
JavaToolchainInfo,用于查找 ijar 工具。

stamp_jar

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

在罐子上标记目标标签以实现 add_dep 支持。返回值通常会传递给 JavaInfo#compile_jar。尽可能使用 run_ijar

参数

参数 说明
actions actions; 必需
ctx.actions
jar 文件; 必需
要运行 stamp_jar 的 JAR。
target_label 标签; 必需
用于为 jar 添加标记的目标标签。用于 add_dep 支持。通常,您会传递 ctx.label 来为 jar 添加当前规则的标签。
java_toolchain 信息;必需
用于查找 timestamp_jar 工具的 JavaToolchainInfo。