JavaInfo

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。
封装 Java 和类 Java 目标的相关信息的提供程序。

成员

Java 信息

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

annotation_processing

java_annotation_processing JavaInfo.annotation_processing

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

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

api_generating_plugins

JavaPluginData JavaInfo.api_generating_plugins

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

这些注释处理器在生成其 Java 头文件(包含方法签名)之前应用于 Java 目标。如果不存在 API 插件,系统将根据来源生成头文件 jar,从而减少关键路径。

api_generating_pluginsplugins 的子集。

编译信息

java_compilation_info JavaInfo.compilation_info

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

compile_jars

depset JavaInfo.compile_jars

在编译时直接返回此目标所需的 Jars。它们可以是 interface jar(ijar 或 hjar)、常规 jar 或这两种类型,具体取决于规则实现是否选择创建 interface jar。

full_compile_jars

depset JavaInfo.full_compile_jars

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

注意:JavaInfo.compile_jars 可以混合返回接口 Jar 和常规 Jars。

仅当接口 Jars 不适用于规则集(例如一些 Scala 目标)时,才使用此方法。如果您使用的是仅限 Java 的目标,建议通过 JavaInfo.compile_jars 使用 Interface 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

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

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_underline(x),它们适用于结构体以外的值,并且不会污染结构体命名空间。

to_proto

string JavaInfo.to_proto()

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

返回构建目标所需的一组传递 Jar。

transitive_deps

depset JavaInfo.transitive_deps

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

transitive_native_library

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

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

transitive_source_jars

depset JavaInfo.transitive_source_jars

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