ยูทิลิตีสําหรับการรองรับการคอมไพล์ Java ใน Starlark
สมาชิก
BootClassPathInfo
Provider java_common.BootClassPathInfoผู้ให้บริการที่ใช้เพื่อระบุข้อมูลบูตแคช
คอมไพล์
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=[])คอมไพล์ไฟล์ต้นฉบับ/ไฟล์ jar ของ Java จากการใช้งานกฎ Starlark และแสดงผลผู้ให้บริการที่แสดงผลลัพธ์ของการคอมไพล์ และสามารถเพิ่มลงในชุดผู้ให้บริการที่กฎนี้สร้างขึ้น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
ctx
|
ctx;
ต้องระบุ บริบทของกฎ |
source_jars
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] จํานวนไฟล์ jar ที่จะคอมไพล์ ควรระบุ source_jars หรือ source_files อย่างน้อย 1 รายการ |
source_files
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] ซึ่งเป็นรายการไฟล์ซอร์สโค้ด Java ที่จะคอมไพล์ ควรระบุ source_jars หรือ source_files อย่างน้อย 1 รายการ |
output
|
ไฟล์
ต้องระบุ |
output_source_jar
|
ไฟล์ หรือ None
ค่าเริ่มต้นคือ None ไฟล์ jar ของแหล่งที่มาเอาต์พุต ค่าเริ่มต้นคือ `{output_jar}-src.jar` หากไม่ได้ตั้งค่าไว้ |
javac_opts
|
ลําดับสตริง
ค่าเริ่มต้นคือ [] รายการตัวเลือก javac ที่ต้องการ |
deps
|
ลําดับของ struct;
ค่าเริ่มต้นคือ [] รายการของ Dependency |
runtime_deps
|
ลําดับของ struct
ค่าเริ่มต้นคือ [] นี่คือรายการของไลบรารีรันไทม์ที่ต้องใช้ |
exports
|
ลําดับของ struct
ค่าเริ่มต้นคือ [] รายการการส่งออก |
plugins
|
ลําดับของ struct หรือลําดับของ struct
ค่าเริ่มต้นคือ [] รายการปลั๊กอิน |
exported_plugins
|
ลําดับของ struct หรือลําดับของ struct
ค่าเริ่มต้นคือ [] ซึ่งก็คือรายการปลั๊กอินที่ส่งออก |
native_libraries
|
ลําดับของ CcInfo
ค่าเริ่มต้นคือ [] ไลบรารีที่มาพร้อมเครื่องของ CC ที่จําเป็นสําหรับไลบรารีนี้ |
annotation_processor_additional_inputs
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] รายการอินพุตที่การดำเนินการคอมไพล์ Java จะใช้นอกเหนือจากซอร์สโค้ด Java สําหรับการประมวลผลคําอธิบายประกอบ |
annotation_processor_additional_outputs
|
ลําดับของไฟล์
ค่าเริ่มต้นคือ [] รายการเอาต์พุตที่การดำเนินการคอมไพล์ Java จะแสดงผลนอกเหนือจากไฟล์ jar ของคลาสจากการประมวลผลคำอธิบายประกอบ |
strict_deps
|
สตริง;
ค่าเริ่มต้นคือ 'ERROR' สตริงที่ระบุวิธีจัดการกับ deps ที่เข้มงวด ค่าที่เป็นไปได้: "OFF", "ERROR", "WARN" และ "DEFAULT" ดูรายละเอียดเพิ่มเติมได้ที่ --strict_java_deps
|
java_toolchain
|
Info;
required JavaToolchainInfo ที่จะใช้ในการคอมไพล์ครั้งนี้ ต้องระบุ |
bootclasspath
|
ค่าเริ่มต้นคือ None BootClassPathInfo ที่จะใช้ในการคอมไพล์นี้ หากมี จะลบล้างบูตคลาสพาธที่เชื่อมโยงกับ java_toolchain ที่ระบุ |
host_javabase
|
ค่าเริ่มต้นคือ None เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ปิดใช้กับ --incompatible_java_common_parameters ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนําออกที่กําลังจะเกิดขึ้น เลิกใช้งานแล้ว: คุณยกเลิกพารามิเตอร์นี้ได้ (host_javabase มีให้ใน java_toolchain) |
sourcepath
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] |
resources
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] |
resource_jars
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] |
classpath_resources
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] |
neverlink
|
bool;
default is False |
enable_annotation_processing
|
bool;
ค่าเริ่มต้นคือ True ปิดใช้การประมวลผลคําอธิบายประกอบในการคอมไพล์นี้ ซึ่งจะทำให้ระบบละเว้นโปรแกรมประมวลผลคําอธิบายประกอบที่ระบุไว้ในปลั๊กอินหรือใน exported_plugins ของ deps |
enable_compile_jar_action
|
bool;
ค่าเริ่มต้นคือ True เปิดใช้การคอมไพล์ส่วนหัวหรือการสร้าง ijar หากตั้งค่าเป็น "เท็จ" ระบบจะบังคับให้ใช้ไฟล์ jar ของคลาสแบบสมบูรณ์ในเส้นทางการคอมไพล์ของรายการที่เกี่ยวข้อง การดำเนินการดังกล่าวมีไว้สำหรับเป้าหมายที่ไม่ใช่ไลบรารี เช่น ไบนารีที่ไม่มีรายการที่เกี่ยวข้อง |
add_exports
|
ลําดับสตริง
ค่าเริ่มต้นคือ [] อนุญาตให้คลังนี้เข้าถึง |
add_opens
|
ลําดับสตริง
ค่าเริ่มต้นคือ [] อนุญาตให้คลังนี้เข้าถึง |
JavaRuntimeInfo
Provider java_common.JavaRuntimeInfoคีย์ที่ใช้ดึงข้อมูลผู้ให้บริการที่มีข้อมูลเกี่ยวกับรันไทม์ Java ที่ใช้อยู่
JavaToolchainInfo
Provider java_common.JavaToolchainInfoคีย์ที่ใช้ดึงข้อมูลผู้ให้บริการที่มีข้อมูลเกี่ยวกับเครื่องมือทางเทคนิค Java ที่ใช้อยู่
ผสาน
struct java_common.merge(providers)ผสานผู้ให้บริการที่ระบุไว้ใน JavaInfo รายการเดียว
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
providers
|
ลําดับ struct;
ต้องระบุ รายชื่อผู้ให้บริการที่จะผสาน |
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
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
actions
|
actions;
required ctx.actions |
output_jar
|
File หรือ None
ค่าเริ่มต้นคือ None เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ปิดใช้กับ --incompatible_java_common_parameters ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนําออกที่กําลังจะเกิดขึ้น เลิกใช้งานแล้ว: ไฟล์ jar ผลลัพธ์ของกฎ ใช้เพื่อตั้งชื่อไฟล์ jar แหล่งที่มาที่ได้ พารามิเตอร์นี้จะตั้งค่าพารามิเตอร์ output_source_jar เป็น `{output_jar}-src.jar` ให้ใช้พารามิเตอร์ output_source_jar โดยตรงแทน |
output_source_jar
|
ไฟล์ หรือ None
ค่าเริ่มต้นคือ None ไฟล์ jar ต้นฉบับเอาต์พุต |
sources
|
ลําดับของ Files;
ค่าเริ่มต้นคือ [] ซึ่งเป็นรายการไฟล์ต้นฉบับ Java ที่จะแพ็กลงในไฟล์ JAR ต้นฉบับ |
source_jars
|
ลําดับของไฟล์
ค่าเริ่มต้นคือ [] นี่คือรายการของไฟล์ต้นฉบับที่จะแพ็กลงในไฟล์ต้นฉบับ |
java_toolchain
|
Info;
ต้องระบุ JavaToolchainInfo ที่ใช้ค้นหาเครื่องมือ ijar |
host_javabase
|
ค่าเริ่มต้นคือ None เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ปิดใช้กับ --incompatible_java_common_parameters ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนําออกที่กําลังจะเกิดขึ้น เลิกใช้งานแล้ว: คุณยกเลิกพารามิเตอร์นี้ได้ (host_javabase มีให้ใน java_toolchain) |
run_ijar
File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)เรียกใช้ ijar ในไฟล์ jar โดยตัดข้อมูลโค้ดของเมธอดออก ซึ่งจะช่วยลดการสร้าง Jar ที่ขึ้นต่อกันอีกครั้งในระหว่างการคอมไพล์ใหม่ที่มีการเปลี่ยนแปลงเพียงเล็กน้อยในการใช้งานเมธอด โดยปกติแล้วระบบจะส่งค่าผลลัพธ์ไปยัง
JavaInfo#compile_jar
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
actions
|
actions;
required ctx.actions |
jar
|
ไฟล์
ต้องระบุ Jar สำหรับเรียกใช้ ijar |
target_label
|
ป้ายกำกับ หรือ None
ค่าเริ่มต้นคือ None ป้ายกำกับเป้าหมายที่จะประทับบนขวด ใช้สำหรับการสนับสนุน add_dep โดยปกติแล้ว คุณจะต้องส่ง ctx.label เพื่อประทับตรากระป๋องด้วยป้ายกำกับของกฎปัจจุบัน
|
java_toolchain
|
Info;
ต้องระบุ JavaToolchainInfo ที่ใช้ค้นหาเครื่องมือ ijar |
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
|
ไฟล์
ต้องระบุ ไฟล์ jar สำหรับเรียกใช้ stamp_jar |
target_label
|
ป้ายกำกับ
ต้องระบุ ป้ายกำกับเป้าหมายที่จะประทับบนขวด ใช้สำหรับการสนับสนุน add_dep โดยปกติแล้ว คุณจะต้องส่ง ctx.label เพื่อประทับตรากระป๋องด้วยป้ายกำกับของกฎปัจจุบัน
|
java_toolchain
|
Info;
ต้องระบุ JavaToolchainInfo ที่ใช้ค้นหาเครื่องมือ stamp_jar |