java_common_

回報問題 查看來源

Starlark 中支援 Java 編譯的公用程式。

成員

BootClassPathInfo

Provider java_common.BootClassPathInfo

用於提供 bootclasspath 資訊的供應商

compile

struct java_common.compile(ctx, *, source_jars=[], source_files=[], output, output_source_jar=None, javac_opts=[], deps=[], runtime_deps=[], exports=[], plugins=[], exported_plugins=[], native_libraries=[], annotation_processor_additional_inputs=[], annotation_processor_additional_outputs=[], strict_deps='ERROR', java_toolchain, bootclasspath=None, host_javabase=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

透過實作 Starlark 規則來編譯 Java 來源檔案/jars,並傳回代表編譯結果的提供者,也可新增至此規則發出的提供者組合。

參數

參數 說明
ctx 必要
規則結構定義。
source_jars 檔案序列;預設值為 []
要編譯的 jar 清單。至少須指定一個 source_jars 或 source_files。
source_files 「File」序列;預設值為 []
要編譯的 Java 來源檔案清單。至少須指定一個 source_jars 或 source_files。
output 必填
output_source_jar File;或 None;預設值為 None
輸出來源 jar。選用設定。如未設定,預設值為 `{output_jar}-src.jar`。
javac_opts stringsequence;預設為 []
所需 Javac 選項的清單。選用。
deps struct序列;預設為 []
依附元件清單。選用。
runtime_deps struct序列;預設值為 []
執行階段依附元件清單。選用。
exports struct序列;預設值為 []
匯出項目清單。選用。
plugins structsequence;或 structsequence;預設為 []
外掛程式清單。選用。
exported_plugins structsequence;或 structsequence;預設為 []
已匯出的外掛程式清單。選用。
native_libraries CcInfo序列;預設值為 []
CC 這個程式庫所需的原生程式庫依附元件。
annotation_processor_additional_inputs 檔案序列;預設值為 []
除了 Java 編譯作業的 Java 來源之外,Java 編譯動作還會採取的輸入內容清單。
annotation_processor_additional_outputs File序列;預設值為 []
除了註解處理中的類別 jar 之外,Java 編譯動作也會輸出的輸出內容清單。
strict_deps 預設值為 'ERROR'
字串,用於指定處理嚴格依附元件的方式。可能的值:「OFF」、「ERROR」、「WARN」和「DEFAULT」。詳情請參閱 /docs/user-manual#flag--strict_java_deps。預設值為「ERROR」。
java_toolchain 必要
要用於此編譯的 JavaToolchainInfo。必填。
bootclasspath 預設值為 None
要用於此編譯的 BootClassPathInfo。如果有,則會覆寫與所提供 java_toolchain 相關聯的 bootclasspath。選用。
host_javabase 預設值為 None
已淘汰。此參數已淘汰,即將移除。請勿完全仰賴它。--+incompatible_java_common_parameters停用這項功能。使用此旗標確認您的程式碼是否與即將移除的程式碼相容。
已淘汰:您可以捨棄這個參數 (host_javabase 提供給 java_toolchain)
sourcepath 檔案序列;預設值為 []
resources 檔案序列;預設值為 []
resource_jars 檔案序列;預設值為 []
classpath_resources 檔案序列;預設值為 []
預設值為 False
enable_annotation_processing 預設值為 True
停用這項編譯中的註解處理功能,導致系統會忽略外掛程式或 export_plugins 中的 deps 的註解處理工具。
enable_compile_jar_action 預設值為 True
啟用標頭編譯或 ijar 建立。如果設為 False,系統會在任何依附元件的編譯類別路徑中強制使用完整的類別 jar。這種做法可用於非程式庫目標,例如沒有依附關係的二進位檔。
add_exports 字串序列;預設值為 []
允許這個程式庫存取指定的 /(選用)。
add_opens 字串序列;預設值為 []
允許這個程式庫反射存取指定的 /。選用欄位。

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

用來擷取供應器的金鑰,其中包含目前使用的 Java 執行階段相關資訊。

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

用來擷取供應器的金鑰,其中包含正在使用的 Java 工具鍊相關資訊。

合併

struct java_common.merge(providers)

將指定的提供者合併為單一 JavaInfo。

參數

參數 說明
providers structsequence;必要
要合併的提供者清單。

pack_sources

File java_common.pack_sources(actions, *, output_jar=None, output_source_jar=None, sources=[], source_jars=[], java_toolchain, host_javabase=None)

將來源和來源 jar 封裝成單一來源 jar 檔案。傳回值通常會傳遞至

JavaInfo#source_jar

至少須提供其中一個參數 output_jar 或 output_source_jar。

參數

參數 說明
actions 必要
ctx.actions
output_jar File;或 None;預設為 None
已淘汰。此參數已淘汰,即將移除。請勿完全仰賴它。--+incompatible_java_common_parameters停用這項功能。使用此旗標確認您的程式碼是否與即將移除的程式碼相容。
已淘汰:規則的輸出 jar。用來為產生的來源 jar 命名。這個參數會將 output_source_jar 參數設為 `{output_jar}-src.jar`。請改用 output_source_jar 參數。
output_source_jar File;或 None;預設值為 None
輸出來源 jar。
sources File序列;預設為 []
要封裝至來源 jar 中的 Java 來源檔案清單。
source_jars 檔案序列;預設值為 []
要封裝到來源 jar 中的來源 jar 清單。
java_toolchain 必要
用來尋找 ijar 工具的 JavaToolchainInfo。
host_javabase 預設值為 None
已淘汰。此參數已淘汰,即將移除。請勿完全仰賴它。--+incompatible_java_common_parameters停用這項功能。使用此旗標確認您的程式碼是否與即將移除的程式碼相容。
已淘汰:您可以捨棄這個參數 (host_javabase 提供給 java_toolchain)

run_ijar

File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)

在罐子上執行 ijar,去除其方法主體。如此一來,僅僅對方法實作僅有簡單變更的重新編譯時,有助於減少在重新編譯期間重建相依的 Jar。傳回的值通常會傳遞至 JavaInfo#compile_jar

參數

參數 說明
actions 必要
ctx.actions
jar 必填
要執行 ijar 的 jar。
target_label 標籤;或 None;預設值為 None
用來標記 jar 檔案的目標標籤。用於 add_dep 支援。一般而言,您通常會傳遞 ctx.label,以目前規則的標籤蓋章。
java_toolchain 必要
用來尋找 ijar 工具的 JavaToolchainInfo。

stamp_jar

File java_common.stamp_jar(actions, *, jar, target_label, java_toolchain)

戳記 jar 有支援 add_dep 的目標標籤。傳回的值通常會傳遞至 JavaInfo#compile_jar。請盡可能使用 run_ijar

參數

參數 說明
actions 必要
ctx.actions
jar 必填
要執行戳記_jar 的 jar。
target_label 必填
用來讓罐子裝章的目標標籤。用於 add_dep 支援。一般而言,您通常會傳遞 ctx.label,以目前規則的標籤蓋章。
java_toolchain 必要
用於找到戳記 jar 工具的 JavaToolchainInfo。