java_common

用于在 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 必需
规则上下文。
source_jars 文件序列; 默认值为 []
要编译的 jar 的列表。应至少指定 source_jars 或 source_files 之一。
source_files 文件序列; 默认值为 []
要编译的 Java 源文件的列表。应至少指定 source_jars 或 source_files 之一。
output 必需
output_source_jar 文件;或 None; 默认值为 None
输出源 jar。可选。如果未设置,则默认为 `{output_jar}-src.jar`。
javac_opts 字符串序列; 默认值为 []
所需 javac 选项的列表。可选。
deps 结构体序列; 默认值为 []
依赖项列表。可选。
runtime_deps 结构体序列; 默认值为 []
运行时依赖项列表。可选。
exports 结构体 序列; 默认值为 []
导出列表。可选。
plugins 结构体序列;或结构体序列; 默认值为[]
插件列表。可选。
exported_plugins 结构体序列;或结构体序列; 默认值为[]
导出的插件列表。可选。
native_libraries CcInfo 序列;CcInfo []
此库所需的 CC 原生库依赖项。
annotation_processor_additional_inputs 文件序列; 默认值为 []
除了 Java 源之外,Java 编译操作还将用于注释处理的输入列表。
annotation_processor_additional_outputs 文件序列; 默认值为 []
除了注释处理中的类 jar 之外,Java 编译操作还将输出的输出列表。
strict_deps 默认值为 'ERROR'
一个字符串,用于指定如何处理严格的依赖项。可能的值:'OFF'、'ERROR'、'WARN' 和 'DEFAULT'。如需了解详情,请参阅 /docs/user-manual#flag--strict_java_deps。默认值为 'ERROR'。
java_toolchain 必需
用于此编译的 JavaToolchainInfo。强制性。
bootclasspath 默认值为 None
用于此编译的 BootClassPathInfo。如果存在,则替换与提供的 java_toolchain 关联的启动类路径。可选。
host_javabase 默认值为 None
已废弃。此参数已废弃,即将移除。请勿依赖此功能。它已通过 --+incompatible_java_common_parameters 停用。使用此标志可验证您的代码与即将进行的移除操作兼容。
Deprecated: You can drop this parameter (host_javabase is provided with java_toolchain)
sourcepath 文件序列;默认值为 []
resources 文件序列;默认值为 []
resource_jars 文件序列;默认值为 []
classpath_resources 文件序列;默认值为 []
默认值为 False
enable_annotation_processing 默认值为 True
停用此编译中的注释处理,导致忽略依赖项的插件或 exported_plugins 中提供的任何注释处理器。
enable_compile_jar_action 默认值为 True
启用标头编译或 ijar 创建。如果设置为 False,则强制在任何依赖项的编译类路径中使用完整类 jar。这样做旨在供没有依赖项的二进制文件等非库目标使用。
add_exports 字符串序列; 默认值为 []
允许此库访问给定的 /。可选。
add_opens 字符串序列; 默认值为 []
允许此库以反射方式访问给定的 /。可选。

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

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

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

用于检索包含有关正在使用的 Java 工具链信息的提供程序的键。

merge

struct java_common.merge(providers)

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

参数

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

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 必需
ctx.actions
output_jar 文件;或 None; 默认值为 None
已废弃。此参数已废弃,即将移除。请勿依赖此功能。它已通过 --+incompatible_java_common_parameters 停用。使用此标志可验证您的代码与即将进行的移除操作兼容。
Deprecated: The output jar of the rule. Used to name the resulting source jar. The parameter sets output_source_jar parameter to `{output_jar}-src.jar`.Use output_source_jar parameter directly instead.
output_source_jar 文件;或 None; 默认值为 None
输出源 jar。
sources 文件序列; 默认值为 []
要打包到源 jar 中的 Java 源文件的列表。
source_jars 文件序列;默认值为 []
要打包到源 jar 中的源 jar 的列表。
java_toolchain 必需
用于查找 ijar 工具的 JavaToolchainInfo。
host_javabase 默认值为 None
已废弃。此参数已废弃,即将移除。请勿依赖此功能。它已通过 --+incompatible_java_common_parameters 停用。使用此标志可验证您的代码与即将进行的移除操作兼容。
Deprecated: You can drop this parameter (host_javabase is provided with java_toolchain)

run_ijar

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

对 jar 运行 ijar,剥离其方法正文。这有助于减少在仅包含对方法实现的简单更改的任何重新编译期间重新构建依赖 jar。返回值通常会传递给 JavaInfo#compile_jar.

参数

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

stamp_jar

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

使用目标标签为 jar 添加戳记,以支持 add_dep。返回值通常会传递给 JavaInfo#compile_jar。尽可能使用 run_ijar

参数

参数 说明
actions 必需
ctx.actions
jar 必需
要对其运行 stamp_jar 的 jar。
target_label 必需
用于为 jar 添加戳记的目标标签。用于 add_dep 支持。通常,您会将 ctx.label 传递给 jar,以使用当前规则的标签为 jar 添加戳记。
java_toolchain 必需
用于查找 stamp_jar 工具的 JavaToolchainInfo。