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=[])
參數
參數 | 說明 |
---|---|
ctx
|
ctx;
required The rule context. |
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
|
字串的序列;
預設為 [] 所需 javac 選項的清單。 |
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'。詳情請參閱 --strict_java_deps
|
java_toolchain
|
Info;
required 用於此編譯作業的 JavaToolchainInfo。必填。 |
bootclasspath
|
預設值為 None 要用於此編譯的 BootClassPathInfo。如有的話,會覆寫與提供的 java_toolchain 相關聯的 bootclasspath。 |
sourcepath
|
File 的序列;
預設為 [] |
resources
|
File 的序列;
預設為 [] |
resource_jars
|
File 的序列;
預設為 [] |
classpath_resources
|
File 的序列;
預設為 [] |
neverlink
|
bool;
預設為 False |
enable_annotation_processing
|
bool;預設為 True 。 會停用此編譯中的註解處理作業,導致系統忽略在外掛程式或依附元件的 exported_plugins 中提供的任何註解處理器。 |
enable_compile_jar_action
|
bool;預設值為 True 。啟用標頭編譯或 ijar 建立功能。如果設為 False,系統就會在任何依附元件的編譯 classpath 中強制使用完整的類別 JAR。這項操作適用於非程式庫目標,例如沒有依附元件的二進位檔。 |
add_exports
|
字串的序列;預設為 [] 。 允許這個程式庫存取指定的 |
add_opens
|
字串的序列;預設為 [] 。 允許這個程式庫以反射方式存取指定的 |
JavaRuntimeInfo
Provider java_common.JavaRuntimeInfo
JavaToolchainInfo
Provider java_common.JavaToolchainInfo
合併
struct java_common.merge(providers)
參數
參數 | 說明 |
---|---|
providers
|
結構體的序列;
必要 要合併的供應器清單。 |
pack_sources
File java_common.pack_sources(actions, *, output_source_jar=None, sources=[], source_jars=[], java_toolchain)
JavaInfo#source_jar
參數
參數 | 說明 |
---|---|
actions
|
actions;
required ctx.actions |
output_source_jar
|
檔案或 None ;預設為 None 。 |
sources
|
檔案的序列;預設為 [] 。 Java 來源檔案清單,將會封裝至來源 JAR 檔案。 |
source_jars
|
檔案序列;預設為 [] 。 要封裝至來源 JAR 檔案的來源 JAR 檔案清單。 |
java_toolchain
|
Info;
required JavaToolchainInfo,用於尋找 ijar 工具。 |
run_ijar
File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)
JavaInfo#compile_jar
。
參數
參數 | 說明 |
---|---|
actions
|
actions;
required ctx.actions |
jar
|
File;
必要 ijar 執行的 JAR 檔案。 |
target_label
|
Label 或 None ;預設為 None 用於標記 JAR 的目標標籤。用於支援 add_dep 。通常,您會傳遞 ctx.label ,以便使用目前規則的標籤蓋上 JAR 檔案的戳記。 |
java_toolchain
|
Info;
required JavaToolchainInfo,用於尋找 ijar 工具。 |
stamp_jar
File java_common.stamp_jar(actions, *, jar, target_label, java_toolchain)
add_dep
支援服務蓋上標記的 JAR。回傳值通常會傳遞至 JavaInfo#compile_jar
。盡可能使用 run_ijar
。
參數
參數 | 說明 |
---|---|
actions
|
actions;
required ctx.actions |
jar
|
檔案;
必要 stamp_jar 要執行的 JAR 檔案。 |
target_label
|
Label;
必須 JAR 的目標標籤。用於支援 add_dep 。通常,您會傳遞 ctx.label ,以便使用目前規則的標籤蓋上 JAR 檔案的戳記。 |
java_toolchain
|
Info;
required JavaToolchainInfo,用於尋找 stamp_jar 工具。 |