成員
- 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 ;
default = None用來建立輸出 jar 的來源 jar。使用 pack_sources 產生這個來源 jar。
|
compile_jdeps
|
File; or None ;
default = Nonejdeps 相關資訊,用於 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 和其他工具可以使用這項資訊,提高處理效率。 |
neverlink
|
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_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。
只有在介面 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
會使用這個欄位的所有外掛程式執行註解處理,這些外掛程式會顯示在 deps
和 plugins
屬性中。
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。