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
|
文件的序列;默认为 [] 要编译的 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
|
struct的序列;默认值为 [] 依赖项列表。 |
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
|
string;
默认为 'ERROR' 一个字符串,用于指定如何处理严格依赖项。可能的值:“OFF”“ERROR”“WARN”和“DEFAULT”。如需了解详情,请参阅 --strict_java_deps
|
java_toolchain
|
Info;
required 要用于此编译的 JavaToolchainInfo。必填。 |
bootclasspath
|
默认值为 None 要用于此编译的 BootClassPathInfo。如果存在,则替换与所提供的 java_toolchain 关联的 bootclasspath。 |
host_javabase
|
默认值为 None 已废弃。此参数已弃用,很快就会被移除。请勿依赖此功能。在 --incompatible_java_common_parameters 中,此功能处于停用状态。使用此标志可验证您的代码是否与即将移除的 API 兼容。已废弃:您可以删除此参数(host_javabase 随 java_toolchain 提供) |
sourcepath
|
文件的序列;默认为 [] |
resources
|
文件的序列;默认为 [] |
resource_jars
|
文件的序列;默认值为 [] |
classpath_resources
|
文件的序列;默认值为 [] |
neverlink
|
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
参数
参数 | 说明 |
---|---|
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
|
文件;或 None ;
默认为 None 输出源 jar。 |
sources
|
文件的序列;默认为 [] 要打包到源 jar 中的 Java 源文件的列表。 |
source_jars
|
文件的序列;默认为 [] 要打包到源 jar 中的源 jar 的列表。 |
java_toolchain
|
Info;
必需 JavaToolchainInfo,用于查找 ijar 工具。 |
host_javabase
|
默认值为 None 已废弃。此参数已弃用,很快就会被移除。请勿依赖此功能。在 --incompatible_java_common_parameters 中,此功能处于停用状态。使用此标志可验证您的代码是否与即将移除的 API 兼容。已废弃:您可以删除此参数(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)使用目标标签为 jar 添加戳记,以便支持
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
|
Info;
required JavaToolchainInfo,用于查找 stamp_jar 工具。 |