java_common_

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

成員

BootClassPathInfo

Provider java_common.BootClassPathInfo

用來提供 bootclasspath 資訊的供應商

compile

JavaInfo 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, 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 sequence of Files; 預設 = []
要編譯的 jar 清單。至少須指定 source_jars 或 source_files 其中之一。
source_files sequence of Files; 預設 = []
要編譯的 Java 來源檔案清單。至少須指定 source_jars 或 source_files 其中之一。
output 必要
output_source_jar File; or None; 預設值 = 無
輸出來源 jar 檔案。選用設定。如果不設定,預設值為 `{output_jar}-src.jar`。
javac_opts sequence of strings; 預設 = []
所需 javac 選項的清單。選用。
deps sequence of JavaInfos; 預設 = []
依附元件清單。選用。
runtime_deps sequence of JavaInfos; 預設 = []
執行階段依附元件的清單。選用。
exports sequence of JavaInfos; 預設 = []
匯出項目清單。選用。
plugins sequence of JavaPluginInfos; or sequence of JavaInfos; 預設 = []
外掛程式清單。選用。
exported_plugins sequence of JavaPluginInfos; or sequence of JavaInfos; 預設 = []
匯出的外掛程式清單。選用。
native_libraries sequence of CcInfos; 預設 = []
CC 這個程式庫所需的原生程式庫依附元件。
annotation_processor_additional_inputs sequence of Files; 預設 = []
此為清單,列出 Java 編譯動作除了用於註解處理的 Java 來源之外,還需要進行哪些輸入。
annotation_processor_additional_outputs sequence of Files; 預設 = []
Java 編譯動作除了透過註解處理的類別 jar 以外,還會輸出的輸出內容清單。
strict_deps 預設值 = 'ERROR'
指定如何處理嚴格 deps 的字串。可能的值:「OFF」、「ERROR」、「WARN」和「DEFAULT」詳情請參閱 /docs/user-manual#flag--strict_java_deps。預設為「ERROR」。
java_toolchain 必要
要用於此編譯的 JavaToolchainInfo。必要欄位。
host_javabase 預設值 = 無
已淘汰,此參數已淘汰,並將在近期內移除。請勿仰賴這項功能。這項功能已停用 --+incompatible_java_common_parameters。請使用這個標記確認您的程式碼是否與即將移除的程式碼相容。
已淘汰:您可以捨棄這個參數 (host_javabase 會與 java_toolchain 一併提供)
sourcepath sequence of Files; 預設 = []
resources sequence of Files; 預設 = []
resource_jars sequence of Files; 預設 = []
classpath_resources sequence of Files; 預設 = []
預設值 = 否
enable_annotation_processing 預設值 = True
停用這項編譯中的註解處理功能,導致外掛程式或 export_plugins 中提供的註解處理工具遭到忽略。
enable_compile_jar_action 預設值 = True
啟用標頭編譯或 ijar 建立功能。如果設為 False,系統就會強制在任何依附元件的編譯類別路徑中使用完整的類別 jar。這麼做適用於非程式庫目標 (例如沒有依附元件的二進位檔)。
add_exports sequence of strings; 預設 = []
允許此程式庫存取指定的 /。選用。
add_opens sequence of strings; 預設 = []
允許此程式庫反射存取指定的 /。選用。

JavaPluginInfo

Provider java_common.JavaPluginInfo

用來擷取包含 Java 外掛程式相關資訊的提供者的金鑰。這個值和 JavaPluginInfo 具有相同的值。
偏好在新程式碼中使用 JavaPluginInfo

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

用來擷取提供者的鍵,該提供者包含所使用 Java 執行階段的相關資訊。

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

用來擷取提供者的鍵,該提供者包含所使用 Java 工具鍊的相關資訊。

make_non_strict

JavaInfo java_common.make_non_strict(java_info)

傳回新的 Java 提供者,其 Direct-jars 部分是指定 Java 提供者的直接與間接 jar 聯集。

參數

參數 說明
java_info 必要
Java 資訊。

合併

JavaInfo java_common.merge(providers, *, merge_java_outputs=True, merge_source_jars=True)

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

參數

參數 說明
providers sequence of JavaInfos; 必要
要合併的供應商清單。
merge_java_outputs 預設值 = True
merge_source_jars 預設值 = True

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; or None; 預設值 = 無
已淘汰,此參數已淘汰,並將在近期內移除。請勿仰賴這項功能。這項功能已停用 --+incompatible_java_common_parameters。請使用這個標記確認您的程式碼是否與即將移除的程式碼相容。
已淘汰:規則的輸出 jar。用來為產生的來源 jar 命名。參數會將 output_source_jar 參數設為 `{output_jar}-src.jar`。請直接使用 output_source_jar 參數。
output_source_jar File; or None; 預設值 = 無
輸出來源 jar 檔案。
sources sequence of Files; 預設 = []
要封裝至來源 jar 的 Java 來源檔案清單。
source_jars sequence of Files; 預設 = []
要封裝至來源 jar 的來源 jar 清單。
java_toolchain 必要
用來尋找 ijar 工具的 JavaToolchainInfo。
host_javabase 預設值 = 無
已淘汰,此參數已淘汰,並將在近期內移除。請勿仰賴這項功能。這項功能已停用 --+incompatible_java_common_parameters。請使用這個標記確認您的程式碼是否與即將移除的程式碼相容。
已淘汰:您可以捨棄這個參數 (host_javabase 會與 java_toolchain 一併提供)
可能會傳回 None

供應商

Provider java_common.provider

傳回 Java 宣告的提供者。
這個值與 JavaInfo 相同。
偏好在新程式碼中使用 JavaInfo

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 Label; or None; 預設值 = 無
要用來蓋印 jar 檔案的目標標籤。用於 add_dep 支援服務。一般而言,您會傳遞 ctx.label 以使用目前規則的標籤蓋上 jar 檔案。
java_toolchain 必要
用來尋找 ijar 工具的 JavaToolchainInfo。

stamp_jar

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

設定具有 add_dep 支援目標標籤的 jar 檔案。傳回值通常會傳遞至 JavaInfo#compile_jar。盡可能使用 run_ijar

參數

參數 說明
actions 必要
ctx.actions
jar 必要
要執行戳記_jar 的 jar 檔案。
target_label 必要
要用來蓋印 jar 檔案的目標標籤。用於 add_dep 支援服務。一般而言,您會傳遞 ctx.label 以使用目前規則的標籤蓋上 jar 檔案。
java_toolchain 必要
用來尋找戳記_jar 工具的 JavaToolchainInfo。

to_java_binary_info

JavaInfo java_common.to_java_binary_info(java_info)

傳回指定 JavaInfo 的副本,該副本由 java_binary 傳回

參數

參數 說明
java_info 必要
要強化的 JavaInfo。