java_common

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。
Starlark 中支持 Java 编译的实用程序。

成员

BootClassPathInfo

Provider java_common.BootClassPathInfo

用于提供 bootclasspath 信息的提供程序

compile

JavaInfo 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, 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 sequence of Files; default = []
要编译的 jar 列表。应至少指定 source_jars 或 source_files 中的一个。
source_files sequence of Files; default = []
要编译的 Java 源文件列表。应至少指定 source_jars 或 source_files 中的一个。
output 必需
output_source_jar File; or None;默认值 = None
输出来源 jar。(可选)如果未设置,则默认为“{output_jar}-src.jar”。
javac_opts sequence of strings;默认值为 []
所需 javac 选项的列表。可选。
deps sequence of JavaInfos;默认值为 []
。依赖项列表。可选。
runtime_deps sequence of JavaInfos;默认值为 []
运行时依赖项列表。可选。
exports sequence of JavaInfos;默认值为 []
导出列表。可选。
plugins sequence of JavaPluginInfos; or sequence of JavaInfos;默认值为 []
。插件列表。可选。
exported_plugins sequence of JavaPluginInfos; or sequence of JavaInfos;默认值为 []
导出的插件列表。可选。
native_libraries sequence of CcInfos;默认值为 []
此库所需的 CC 原生库依赖项。
annotation_processor_additional_inputs sequence of Files;默认值为 []
。除了用于注解处理的 Java 源代码之外,Java 编译操作还将执行的输入列表。
annotation_processor_additional_outputs sequence of Files;默认值为 []
。除了注解处理中的类 jar 之外,Java 编译操作还会输出的输出。
strict_deps default = 'ERROR'
一个字符串,用于指定如何处理严格依赖项。可能的值:'OFF'ERROR'、'WARN' 和 'DEFAULT'。有关详情,请参阅 /docs/user-manual#flag--strict_java_deps。默认情况下,“错误”。
java_toolchain 必需
将用于此编译的 JavaToolchainInfo。必需。
host_javabase default = None
已弃用。此参数已被弃用,很快就会被移除。请勿依赖它。已通过 --+incompatible_java_common_parameters 将其停用。使用此标志可以验证您的代码是否与其即将移除的代码兼容。
已弃用:您可以删除此参数(host_javabase 随 java_toolchain 一起提供)
sourcepath sequence of Files;默认值为 []
resources sequence of Files;默认值为 []
resource_jars sequence of Files;默认值为 []
classpath_resources sequence of Files;默认值为 []
默认值 = False
enable_annotation_processing default = True
停用此编译中的注解处理,导致在插件或 OEM 依赖项的 export_plugin 中提供的所有注解处理器被忽略。
enable_compile_jar_action default = True
启用头文件编译或 ijar 创建。如果设置为 False,则会强制在任何依赖项的编译类路径中使用完整的类 jar。这样做适用于非库目标,例如没有依赖项的二进制文件。
add_exports sequence of strings;默认值为 []
。允许此库访问指定的 /。可选。
add_opens sequence of strings;默认值为 []
。允许此库以反射方式访问指定的 /。可选。

Java 插件信息

Provider java_common.JavaPluginInfo

用于检索包含 Java 插件相关信息的提供程序的键。可访问与 JavaPluginInfo 相同的值。
最好在新代码中使用 JavaPluginInfo

Java 运行时信息

Provider java_common.JavaRuntimeInfo

用于检索包含所用 Java 运行时相关信息的提供程序的键。

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

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

make_non_strict

JavaInfo java_common.make_non_strict(java_info)

返回一个新的 Java 提供程序,该提供程序的 direct-jar 部分是给定 Java 提供程序的直接和间接 jar 的并集。

参数

参数 说明
java_info 必需
Java 信息。

合并

JavaInfo java_common.merge(providers, *, merge_java_outputs=True, merge_source_jars=True)

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

参数

参数 说明
providers sequence of JavaInfos;必需
要合并的提供商列表。
merge_java_outputs 默认值 = True
merge_source_jars 默认值 = True

软件包来源

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 File; or None;默认值 = None
已弃用。此参数已被弃用,很快就会被移除。请勿依赖它。已通过 --+incompatible_java_common_parameters 将其停用。使用此标志可以验证您的代码是否与其即将移除的代码兼容。
已弃用:规则的输出 jar 文件。用于为生成的源 jar 命名。该参数会将 output_source_jar 参数设置为“{output_jar}-src.jar”。请改为使用 output_source_jar 参数。
output_source_jar File; or None;默认值 = None
输出来源 jar。
sources sequence of Files;默认值为 []
。要打包到源代码 jar 中的 Java 源文件列表。
source_jars sequence of Files; default = []
要打包到源 jar 中的源 jar 列表。
java_toolchain 必需
用于查找 ijar 工具的 JavaToolchainInfo。
host_javabase default = None
已弃用。此参数已被弃用,很快就会被移除。请勿依赖它。已通过 --+incompatible_java_common_parameters 将其停用。使用此标志可以验证您的代码是否与其即将移除的代码兼容。
已弃用:您可以删除此参数(host_javabase 随 java_toolchain 一起提供)
可能会返回 None

provider

Provider java_common.provider

返回 Java 声明的提供程序。
可使用与 JavaInfo 相同的值。
最好在新代码中使用 JavaInfo

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 Label; or None;默认值为默认值“无”
表示 jar 中要标记的目标标签。用于 add_dep 支持。通常,您会传递 ctx.label 以使用当前规则的标记标记 jar。
java_toolchain 必需
用于查找 ijar 工具的 JavaToolchainInfo。

Stamp_jar

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

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

参数

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

to_java_binary_info

JavaInfo java_common.to_java_binary_info(java_info)

返回给定 JavaInfo 的副本,其中包含 java_binary 返回的最少信息

参数

参数 说明
java_info 必需
要增强的 JavaInfo。