Java 信息

用于封装 Java 及类 Java 目标相关信息的提供程序。

成员

JavaInfo

JavaInfo JavaInfo(output_jar, compile_jar, source_jar=None, compile_jdeps=None, generated_class_jar=None, generated_source_jar=None, native_headers_jar=None, manifest_proto=None, neverlink=False, deps=[], runtime_deps=[], exports=[], exported_plugins=[], jdeps=None, native_libraries=[])

JavaInfo 构造函数。

参数

参数 说明
output_jar 必需
由于编译(例如 javac、scalac 等)而创建的 jar。
compile_jar File; or None; 必需
添加为编译时依赖项以代替 output_jar 的 jar。通常,这是 run_ijar 生成的 ijar。如果您无法使用 ijar,请考虑改用 stamp_ijar 的输出。如果您不想使用这两者,只需传递 output_jar。在一些特殊情况下,此参数可能会设置为 None,例如添加包含资源的 jar,或在 java_binary 等终端规则中使用时。
source_jar File; or None; 默认 = 无
用于创建输出 jar 的源 jar。使用 pack_sources 生成此源 jar。
compile_jdeps File; or None; 默认 = 无
jdeps 关于 JavaCompileAction 所用编译时依赖项的信息。它应该是使用 Bazel 随附的 deps.proto protobuf 编码的二进制 proto。此文件通常由标头编译器生成(如果有)。
generated_class_jar File; or None; 默认 = 无
包含从注解处理期间生成的源代码编译的类文件的 jar 文件。
generated_source_jar File; or None; 默认 = 无
因注解处理而创建的源 jar。
native_headers_jar File; or None; 默认 = 无
包含支持原生方法实现的 CC 头文件(通常是 javac -h 的输出)的 jar。
manifest_proto File; or None; 默认 = 无
规则输出的清单信息(如果有)。它应该是使用 Bazel 随附的 manifest.proto protobuf 编码的二进制 proto。IDE 和其他工具可以利用这些信息进行更高效的处理。
默认值 = False
如果为 true,则仅使用此库进行编译,在运行时不使用此库。
deps sequence of JavaInfos; 默认值 = []
用于创建输出 jar 的编译时依赖项。
runtime_deps sequence of JavaInfos; 默认值 = []
此库所需的运行时依赖项。
exports sequence of JavaInfos; 默认值 = []
供此库用户使用的库。另请参阅 java_library.exports
exported_plugins sequence of JavaPluginInfos; 默认值 = []
导出的插件列表。选填。
jdeps File; or None; 默认 = 无
规则输出的 jdeps 信息(如果有)。它应该是使用 Bazel 随附的 deps.proto protobuf 编码的二进制 proto。此文件通常由编译器生成(如果有)。IDE 和其他工具可以利用这些信息进行更高效的处理。
native_libraries sequence of CcInfos; 默认值 = []
此库所需的 CC 原生库依赖项。

annotation_processing

java_annotation_processing JavaInfo.annotation_processing

返回有关应用于此 Java/Java 类目标的注解处理器的信息。

已废弃:请改用 plugins(它会返回要由使用目标应用的注解处理器的相关信息)。 可能会返回 None

api_generating_plugins

JavaPluginData JavaInfo.api_generating_plugins

返回有关生成由此目标定义或导出的插件的 API 的数据。

在生成 Java 目标的标头 jar(包含方法签名)之前,这些注解处理器会应用于该目标。如果不存在 API 插件,则从源代码生成标头 JAR 文件,从而缩减关键路径。

api_generating_pluginsplugins 的子集。

compilation_info

java_compilation_info JavaInfo.compilation_info

返回此类似 Java/Java 的目标的编译信息。 可能会返回 None

compile_jars

depset JavaInfo.compile_jars

在编译时直接返回此目标所需的 Jars。这些接口可以是接口 jar(ijar 或 hjar)、常规 jar 或两者,具体取决于规则实施是否选择了创建接口 jar。

full_compile_jars

depset JavaInfo.full_compile_jars

直接返回此目标所需的常规完整编译时 Jars。它们可以是

注意:JavaInfo.compile_jars 可以同时返回接口 Jars 和常规 Jars。

仅当接口 Jars 与您的规则集不兼容(例如某些 Scala 目标)时,才应使用此方法。如果您使用的是纯 Java 目标,最好通过 JavaInfo.compile_jars 使用接口 Jars

java_outputs

list JavaInfo.java_outputs

返回有关此类似 Java/Java 的目标的输出的信息。

module_flags_info

JavaModuleFlagsProvider JavaInfo.module_flags_info

返回 Java 模块标志配置。

输出

java_output_jars JavaInfo.outputs

返回有关此类似 Java/Java 的目标的输出的信息。已弃用:请使用 java_outputs。 可能会返回 None

插件

JavaPluginData JavaInfo.plugins

返回有关使用方目标应应用的所有插件的数据。

这通常是 java_plugin 本身或导出一个或多个插件的 java_library

java_library 会运行注释处理,此字段中的所有插件都显示在 depsplugins 属性中。

runtime_output_jars

sequence JavaInfo.runtime_output_jars

返回由此类似 Java/Java 的目标创建的运行时 Jar 的列表。

source_jars

sequence JavaInfo.source_jars

返回 Jars 列表,其中包含目标本身的所有源文件(包括注解生成的文件),即不包括传递依赖项的来源。

to_json

string JavaInfo.to_json()

已弃用。此 API 已弃用,很快就会被移除。请勿依赖它。此选项已通过 ---incompatible_struct_has_no_methods 停用。使用此标记验证您的代码与其即将移除的兼容性兼容。
从结构体参数创建 JSON 字符串。仅当所有结构体元素(以递归方式)为字符串、整数、布尔值、其他结构体、这些类型的列表或包含这些类型的字符串键和值的字典时,此方法才有效。字符串中的引号和新行会进行转义。示例:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}

已弃用:请改用 json.encode(x) 或 json.encode_ending(x),它们适用于结构体以外的值,并且不会污染结构体字段命名空间。

to_proto

string JavaInfo.to_proto()

已弃用。此 API 已弃用,很快就会被移除。请勿依赖它。此选项已通过 ---incompatible_struct_has_no_methods 停用。使用此标记验证您的代码与其即将移除的兼容性兼容。
使用结构体参数创建文本消息。仅当所有结构体元素(以递归方式)都是字符串、整数、布尔值、其他结构体、字典或这些类型的列表时,此方法才有效。字符串中的引号和新行会进行转义。结构体键按排序顺序迭代。示例:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

已弃用:请改用 proto.encode_text(x)。

transitive_compile_time_jars

depset JavaInfo.transitive_compile_time_jars

返回构建目标所需的传递 Jars 集。

transitive_deps

depset JavaInfo.transitive_deps

已弃用:请改用 JavaInfo.transitive_compile_time_jars。该方法会返回相同的值。

transitive_native_libraries

depset JavaInfo.transitive_native_libraries

返回目标所需的一组传递 CC 原生库。

transitive_runtime_deps

depset JavaInfo.transitive_runtime_deps

已弃用:请改用 JavaInfo.transitive_runtime_jars。它返回的值

transitive_runtime_jars

depset JavaInfo.transitive_runtime_jars

返回目标的运行时类路径上所需的一组传递 Jars。

transitive_source_jars

depset JavaInfo.transitive_source_jars

返回包含当前目标及其所有传递依赖项的源文件的 Jars。