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 必要
因編譯而建立的 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
jdeps 相關資訊,用於 JavaCompileAction 使用的編譯時間依附元件。這個二進位 proto 應使用 Bazel 隨附的 deps.proto protobuf 編碼。如果可用這個檔案,通常由標頭編譯器產生。
generated_class_jar File; or None; default = None
包含於註解處理期間從來源編譯而成的類別檔案 jar 檔案。
generated_source_jar File; or None; default = None
因註解處理而建立的來源 jar。
native_headers_jar File; or None; default = None
包含支援原生方法實作的 CC 標頭檔案 (通常是 javac -h 的輸出內容)。
manifest_proto File; or None; default = None
規則輸出的資訊清單資訊 (如果有的話)。這應是使用 Bazel 內附的 manifest.proto protobuf 編碼的二進位 proto。IDE 和其他工具可以使用這項資訊,提高處理效率。
default = False
如果設為 true,只有這個程式庫會用於編譯,而不是在執行階段進行編譯。
deps sequence of JavaInfos; default = []
編譯時間依附元件,用來建立輸出 jar。
runtime_deps sequence of JavaInfos; 預設值 = []
這個程式庫所需的執行階段依附元件。
exports sequence of JavaInfos; default = []
程式庫可供這個程式庫的使用者使用。另請參閱 java_library.exports
exported_plugins sequence of JavaPluginInfos; default = []
已匯出的外掛程式清單。選用。
jdeps File; or None;預設值 = 無
jdeps 資訊,用於規則輸出 (如果有的話)。這個二進位 proto 應使用 Bazel 隨附的 deps.proto protobuf 編碼。如果可以取得這個檔案,通常是由編譯器產生。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 產生外掛程式相關資料。

這些註解處理工具會在產生標頭 jar (含有方法簽章) 前套用至 Java 目標。如果沒有 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。

只有在介面 Jar 無法與規則組合 (例如部分 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

傳回包含目標本身所有來源檔案 (包括透過註解產生的的來源檔案) 的 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_indent(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

傳回建構目標所需的 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。