成員
- 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
已淘汰:請改用 plugins (傳回因使用目標而套用的註解處理工具相關資訊)。
可能會傳回 None。
api_generating_plugins
JavaPluginData JavaInfo.api_generating_plugins
這些註解處理工具會先套用至 Java 目標,再產生標頭 Jar (包含方法簽章)。如果沒有 API 外掛程式,則系統會從來源產生標頭 jar,藉此減少關鍵路徑。
api_generating_plugins 是 plugins 的子集。
compilation_info
java_compilation_info JavaInfo.compilation_info
None。
compile_jars
depset JavaInfo.compile_jars
full_compile_jars
depset JavaInfo.full_compile_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
module_flags_info
JavaModuleFlagsProvider JavaInfo.module_flags_info
輸出內容
java_output_jars JavaInfo.outputs
None。
外掛程式
JavaPluginData JavaInfo.plugins
這通常是 java_plugin 本身,或是匯出一或多個外掛程式的 java_library。
java_library 會執行註解處理,且這個欄位中的所有外掛程式都會顯示在 deps 和 plugins 屬性中。
runtime_output_jars
sequence JavaInfo.runtime_output_jars
source_jars
sequence JavaInfo.source_jars
to_json
string JavaInfo.to_json()
---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()
---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
transitive_deps
depset JavaInfo.transitive_deps
JavaInfo.transitive_compile_time_jars。傳回相同的值。
transitive_native_libraries
depset JavaInfo.transitive_native_libraries
transitive_runtime_deps
depset JavaInfo.transitive_runtime_deps
JavaInfo.transitive_runtime_jars。傳回相同的值
transitive_runtime_jars
depset JavaInfo.transitive_runtime_jars
transitive_source_jars
depset JavaInfo.transitive_source_jars