java_common_

回報問題 查看原始碼 Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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, 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 來源檔案/jar,並傳回代表編譯結果的供應工具,可新增至此規則產生的供應工具集合。

參數

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

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

用於擷取供應器的鍵,該供應器包含所用 Java 執行階段的相關資訊。

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

用於擷取供應器的索引鍵,該供應器包含所用 Java 工具鍊的相關資訊。

合併

struct java_common.merge(providers)

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

參數

參數 說明
providers 結構體序列; 必要
要合併的供應器清單。

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 required
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 檔案None;預設為 None
sources 檔案序列;預設為 []
。 Java 來源檔案清單,將會封裝至來源 JAR 檔案。
source_jars 檔案序列;預設為 []
。 要封裝至來源 JAR 檔案的來源 JAR 檔案清單。
java_toolchain 必要
JavaToolchainInfo,用於尋找 ijar 工具。
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)

在 JAR 上執行 ijar,並移除其方法主體。這有助於在重新編譯時,減少對依附 JAR 檔案的重新建構作業,因為這類作業只會對方法實作項目進行簡單變更。回傳值通常會傳遞至 JavaInfo#compile_jar

參數

參數 說明
actions required
ctx.actions
jar 必要
ijar 執行的 jar。
target_label LabelNone;預設為 None
用於標記 JAR 的目標標籤。用於支援 add_dep。通常,您會傳遞 ctx.label,以便使用目前規則的標籤蓋上 JAR 檔案的戳記。
java_toolchain 必要
JavaToolchainInfo,用於尋找 ijar 工具。

stamp_jar

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

使用目標標籤為 add_dep 支援服務蓋上標記的 JAR。回傳值通常會傳遞至 JavaInfo#compile_jar。盡可能使用 run_ijar

參數

參數 說明
actions required
ctx.actions
jar 必要
要執行 stamp_jar 的 JAR。
target_label required
JAR 的目標標籤。用於支援 add_dep。通常,您會傳遞 ctx.label,以便使用目前規則的標籤蓋上 JAR 檔案的戳記。
java_toolchain required
JavaToolchainInfo,用於尋找 stamp_jar 工具。