成員
- JavaInfo
- annotation_processing
- api_generating_plugins
- compilation_info
- compile_jars
- full_compile_jars
- java_outputs
- module_flags_info
- 輸出內容
- 外掛程式
- runtime_output_jars
- source_jars
- to_json
- to_proto
- transitive_compile_time_jars
- transitive_deps
- transitive_native_libraries
- transitive_runtime_deps
- transitive_runtime_jars
- transitive_source_jars
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 ;
預設值 = 無用來建立輸出內容 jar 的來源 jar 檔案。使用 pack_sources 產生這個來源 jar 檔案。
|
compile_jdeps
|
File; or None ;
預設值 = 無jdeps 資訊,用於 JavaCompileAction 使用的編譯時間依附元件。此版本應為二進位 proto 編碼,並使用 Bazel 隨附的 deps.proto protobuf 處理此檔案。如果有可用的檔案,通常是由標頭編譯器產生。 |
generated_class_jar
|
File; or None ;
預設值 = 無jar 檔案包含從註解處理期間產生的來源編譯的類別檔案。 |
generated_source_jar
|
File; or None ;
預設值 = 無因註解處理而建立的來源 Jar, |
native_headers_jar
|
File; or None ;
預設值 = 無包含支援原生方法實作 (通常是 javac -h) 的 CC 標頭檔案的 jar 檔案。 |
manifest_proto
|
File; or None ;
預設值 = 無規則輸出內容的資訊清單資訊 (如果有的話)。此項目應為二進位 proto 編碼,並使用 Bazel 隨附的 manifest.proto protobuf 檔案。IDE 和其他工具可使用這項資訊來提高處理效率。 |
neverlink
|
預設值 = 否 如果設為 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 資訊 (如果有的話)。此版本應為二進位 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 產生由這個目標定義或匯出的外掛程式相關資料。
這些註解處理工具會先套用至 Java 目標,再產生標頭 Jar (包含方法簽章)。如果沒有 API 外掛程式,則系統會從來源產生標頭 jar,藉此減少關鍵路徑。
api_generating_plugins
是 plugins
的子集。
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 -
JavaInfo.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
會執行註解處理,且這個欄位中的所有外掛程式都會顯示在 deps
和 plugins
屬性中。
runtime_output_jars
sequence JavaInfo.runtime_output_jars傳回此 Java/Java 型目標建立的執行階段 Jars 清單。
source_jars
sequence JavaInfo.source_jars傳回 Jars 清單,其中包含目標本身的所有來源檔案 (包括註解產生的檔案),亦即「不包括」遞移依附元件的來源。
to_json
string JavaInfo.to_json()已淘汰,這個 API 已淘汰,並將在近期移除。請勿仰賴這項功能。這項功能已停用
---incompatible_struct_has_no_methods
。請使用這個標記確認您的程式碼是否與即將移除的程式碼相容。透過 struct 參數建立 JSON 字串。只有在所有 struct 元素 (遞迴) 為字串、整數、布林值、其他結構體、這些型別的清單,或含有這些型別的字串鍵和值的字典時,才適用此方法。系統會將字串中的引號和換行符號逸出。範例:
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,這適用於 struct 以外的值,而且不會汙染 struct 欄位命名空間。
to_proto
string JavaInfo.to_proto()已淘汰,這個 API 已淘汰,並將在近期移除。請勿仰賴這項功能。這項功能已停用
---incompatible_struct_has_no_methods
。請使用這個標記確認您的程式碼是否與即將移除的程式碼相容。使用 struct 參數建立文字訊息。只有在所有 struct 元素 (遞迴) 為字串、整數、布林值、其他結構體、這些型別的 dict 或清單時,此方法才有效。系統會將字串中的引號和換行符號逸出。結構鍵會按照排序順序疊代。範例:
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。