java_common_

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

成員

BootClassPathInfo

Provider java_common.BootClassPathInfo

用於提供啟動類別路徑資訊的供應商

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, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

從 Starlark 規則的實作項目編譯 Java 來源檔案/JAR,並傳回代表編譯結果的供應器,且可新增至這項規則發出的供應器集。

參數

參數 說明
ctx ctx; required
規則情境。
source_jars 序列File; 預設值為 []
要編譯的罐子清單。至少應指定 source_jars 或 source_files 其中之一。
source_files sequence of Files;預設為 []
。要編譯的 Java 來源檔案清單。至少應指定 source_jars 或 source_files 其中之一。
output 檔案; 必要
output_source_jar File;或 None;預設為 None
輸出來源 JAR。如未設定,預設值為 `{output_jar}-src.jar`。
javac_opts 字串序列;預設值為 []
所需 javac 選項的清單。
deps struct 的序列; 預設為 []
依附元件清單。
runtime_deps struct序列;預設值為 []
執行階段依附元件清單。
exports sequence of structs; 預設為 []
匯出項目清單。
plugins struct序列;或 struct序列;預設為 []
外掛程式清單。
exported_plugins sequence of structs;或 sequence of structs;預設為 []
匯出的外掛程式清單。
native_libraries CcInfoCcInfo; 預設為 []
這個程式庫所需的 CC 原生程式庫依附元件。
annotation_processor_additional_inputs 序列File; 預設為 []
Java 編譯動作除了註解處理的 Java 來源之外,還會採用的輸入清單。
annotation_processor_additional_outputs sequence of Files; 預設為 []
Java 編譯動作除了註解處理的類別 JAR 之外,還會輸出的清單。
strict_deps string;預設值為 'ERROR'
指定如何處理嚴格依附元件的字串。可能的值為「OFF」、「ERROR」、「WARN」和「DEFAULT」。詳情請參閱 --strict_java_deps flag. By default 'ERROR'.
java_toolchain Info; required
A JavaToolchainInfo to be used for this compilation. 必要元素。
bootclasspath 預設值為 None
要用於這項編譯作業的 BootClassPathInfo。如有這個欄位,則會覆寫與所提供 java_toolchain 相關聯的 bootclasspath。
sourcepath File序列;預設為 []
resources File序列;預設為 []
resource_jars File序列;預設為 []
classpath_resources File序列;預設為 []
bool;預設值為 False
enable_annotation_processing bool; default is True
Disables annotation processing in this compilation, causing any annotation processors provided in plugins or in exported_plugins of deps to be ignored.
enable_compile_jar_action bool;預設為 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 sequence of structs;必要
要合併的供應商清單。

pack_sources

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

將來源和來源罐封裝到單一來源罐檔案中。傳回值通常會傳遞至

JavaInfo#source_jar

至少須提供 output_jar 或 output_source_jar 參數。

參數

參數 說明
actions actions; required
ctx.actions
output_source_jar File;或 None;預設為 None
輸出來源 JAR。
sources sequence of Files; 預設值為 []
要封裝至來源 JAR 的 Java 來源檔案清單。
source_jars sequence of Files;預設為 []
要封裝到來源 JAR 中的來源 JAR 清單。
java_toolchain 資訊; 必要
用於尋找 ijar 工具的 JavaToolchainInfo。

run_ijar

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

在 JAR 上執行 ijar,剝除方法主體。這有助於減少在任何重新編譯期間重建依附 JAR 的次數,因為這些重新編譯只包含方法實作的簡單變更。傳回值通常會傳遞至 JavaInfo#compile_jar

參數

參數 說明
actions actions; required
ctx.actions
jar File;必要
要執行 ijar 的 jar。
target_label 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 actions; required
ctx.actions
jar File;必要
要執行 stamp_jar 的 jar。
target_label Label;必要
要蓋在 JAR 上的目標標籤。用於 add_dep 支援。通常您會傳遞 ctx.label,以使用目前規則的標籤蓋上罐子。
java_toolchain 資訊; 必要
用於尋找 stamp_jar 工具的 JavaToolchainInfo。