java_general

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ยูทิลิตีสำหรับการรองรับการคอมไพล์ Java ใน Starlark

สมาชิก

BootClassPathInfo

Provider java_common.BootClassPathInfo

ผู้ให้บริการที่ใช้ระบุข้อมูล Bootclasspath

คอมไพล์

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 ต้องระบุ
บริบทของกฎ
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 ค่าเริ่มต้นคือ []
รายการทรัพยากร Dependency ของรันไทม์ ไม่บังคับ
exports sequence ของ structs; ค่าเริ่มต้นคือ []
รายการการส่งออก ไม่บังคับ
plugins sequence ของ structs หรือลำดับของ structs ค่าเริ่มต้นคือ []
รายการปลั๊กอิน ไม่บังคับ
exported_plugins sequence ของ structs หรือลำดับของ structs ค่าเริ่มต้นคือ []
รายการปลั๊กอินที่ส่งออก ไม่บังคับ
native_libraries ลำดับ ของ CcInfo ค่าเริ่มต้นคือ []
CC ทรัพยากร Dependency ของไลบรารีแบบเนทีฟที่จำเป็นสำหรับไลบรารีนี้
annotation_processor_additional_inputs ลําดับของ Files; ค่าเริ่มต้นคือ []
รายการอินพุตที่การดำเนินการคอมไพล์ Java จะใช้นอกเหนือจากซอร์สโค้ด Java สําหรับการประมวลผลคําอธิบายประกอบ
annotation_processor_additional_outputs ลําดับของไฟล์ ค่าเริ่มต้นคือ []
ซึ่งเป็นรายการเอาต์พุตที่การดำเนินการคอมไพล์ Java จะแสดงผลนอกเหนือจากไฟล์ jar ของคลาสจากการประมวลผลคำอธิบายประกอบ
strict_deps ค่าเริ่มต้นคือ 'ERROR'
สตริงที่ระบุวิธีจัดการกับ deps ที่เข้มงวด ค่าที่เป็นไปได้คือ "OFF", "ERROR", "WARN" และ "DEFAULT" ดูรายละเอียดเพิ่มเติมได้ที่ /docs/user-manual#flag--strict_java_deps โดยค่าเริ่มต้นคือ "ERROR"
java_toolchain ต้องระบุ
JavaToolchainInfo ที่จะใช้สำหรับการคอมไพล์นี้ ต้องระบุ
bootclasspath ค่าเริ่มต้นคือ None
BootClassPathInfo ที่จะใช้สำหรับการคอมไพล์นี้ หากมี จะลบล้างบูตคลาสพาธที่เชื่อมโยงกับ java_toolchain ที่ระบุ ไม่บังคับ
host_javabase ค่าเริ่มต้นคือ None
เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ถูกปิดใช้ด้วย --+incompatible_java_common_parameters ใช้ธงนี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนำโค้ดที่กำลังจะเกิดขึ้นในเร็วๆ นี้
เลิกใช้งาน: คุณวางพารามิเตอร์นี้ได้ (host_javabase มาพร้อมกับ java_toolchain)
sourcepath ลําดับของ Files; ค่าเริ่มต้นคือ []
resources ลําดับของ Files; ค่าเริ่มต้นคือ []
resource_jars ลําดับของ Files; ค่าเริ่มต้นคือ []
classpath_resources ลําดับของ Files; ค่าเริ่มต้นคือ []
ค่าเริ่มต้นคือ False
enable_annotation_processing ค่าเริ่มต้นคือ True
ปิดใช้การประมวลผลคำอธิบายประกอบในการคอมไพล์นี้ ซึ่งทำให้ระบบละเว้นตัวประมวลผลคำอธิบายประกอบที่มีอยู่ในปลั๊กอินหรือใน Export_plugins ของ dep
enable_compile_jar_action ค่าเริ่มต้นคือ True
เปิดใช้การคอมไพล์ส่วนหัวหรือการสร้าง ijar หากตั้งค่าเป็น "เท็จ" ระบบจะบังคับให้ใช้ไฟล์ jar ของคลาสแบบเต็มในเส้นทางการคอมไพล์ของรายการที่เกี่ยวข้อง การดำเนินการดังกล่าวมีไว้สำหรับเป้าหมายที่ไม่ใช่ไลบรารี เช่น ไบนารีที่ไม่มีรายการที่เกี่ยวข้อง
add_exports sequence ของ strings ค่าเริ่มต้นคือ []
อนุญาตให้ไลบรารีนี้เข้าถึง /ที่กำหนด ไม่บังคับ
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

ต้องระบุพารามิเตอร์ exit_jar หรือ exit_source_jar อย่างน้อย 1 รายการ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
actions required
ctx.actions
output_jar ไฟล์ หรือ None ค่าเริ่มต้นคือ None
เลิกใช้งาน พารามิเตอร์นี้เลิกใช้งานแล้วและจะนำออกเร็วๆ นี้ โปรดอย่าพึ่งพา ปิดใช้กับ --+incompatible_java_common_parameters ใช้ธงนี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนำโค้ดที่กำลังจะเกิดขึ้นในเร็วๆ นี้
เลิกใช้งานแล้ว: ไฟล์ jar ผลลัพธ์ของกฎ ใช้เพื่อตั้งชื่อไฟล์ jar แหล่งที่มาที่ได้ พารามิเตอร์นี้จะตั้งค่าพารามิเตอร์ output_source_jar เป็น `{output_jar}-src.jar` ให้ใช้พารามิเตอร์ output_source_jar โดยตรงแทน
output_source_jar ไฟล์ หรือ None ค่าเริ่มต้นคือ None
ไฟล์ jar ต้นฉบับเอาต์พุต
sources ลำดับ ของไฟล์ ค่าเริ่มต้นคือ []
รายการไฟล์ต้นฉบับของ Java ที่จะแพ็กลงใน Jar ต้นทาง
source_jars ลำดับ ของไฟล์ ค่าเริ่มต้นคือ []
รายการ Jar แหล่งที่มาที่จะอัดลงใน Jar แหล่งที่มา
java_toolchain ต้องระบุ
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 required
ctx.actions
jar ต้องระบุ
โหลที่จะเรียกใช้ Jar
target_label ป้ายกำกับ หรือ None ค่าเริ่มต้นคือ None
ป้ายกำกับเป้าหมายที่จะประทับบนขวด ใช้สำหรับการสนับสนุน add_dep โดยปกติแล้ว คุณจะต้องส่ง ctx.label เพื่อประทับตรากระป๋องด้วยป้ายกำกับของกฎปัจจุบัน
java_toolchain ต้องระบุ
JavaToolchainInfo สำหรับค้นหาเครื่องมือ IJar

stamp_jar

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

ประทับตราบนไฟล์ JAR ด้วยป้ายกำกับเป้าหมายสำหรับการรองรับ add_dep โดยทั่วไปแล้ว ค่าการแสดงผลจะส่งต่อไปยัง JavaInfo#compile_jar แนะนำให้ใช้ run_ijar เมื่อเป็นไปได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
actions ต้องระบุ
ctx.actions
jar ต้องระบุ
Jar สำหรับเรียกใช้ stamp_jar
target_label ต้องระบุ
ป้ายกำกับเป้าหมายที่จะประทับบนโถ ใช้สำหรับการสนับสนุน add_dep โดยปกติแล้ว คุณจะต้องส่ง ctx.label เพื่อประทับตราโหลด้วยป้ายกำกับของกฎปัจจุบัน
java_toolchain ต้องระบุ
JavaToolchainInfo สำหรับค้นหาเครื่องมือ stamp_jar