java_general

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

ยูทิลิตีสำหรับการรองรับการคอมไพล์ 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 ลำดับของไฟล์ ค่าเริ่มต้นคือ []
รายการ JAR ที่จะคอมไพล์ ควรระบุ source_jars หรือ source_files อย่างน้อย 1 รายการ
source_files ลำดับของไฟล์ ค่าเริ่มต้นคือ []
รายการไฟล์ต้นฉบับ Java ที่จะคอมไพล์ ควรระบุ source_jars หรือ source_files อย่างน้อย 1 รายการ
output ต้องระบุ
output_source_jar ไฟล์ หรือ None ค่าเริ่มต้นคือ None
ไฟล์ JAR ต้นฉบับของเอาต์พุต ไม่บังคับ ค่าเริ่มต้นคือ `{output_jar}-src.jar` หากไม่ได้ตั้งค่าไว้
javac_opts ลำดับของสตริง ค่าเริ่มต้นคือ []
รายการตัวเลือก javac ที่ต้องการ ไม่บังคับ
deps ลำดับของ struct ค่าเริ่มต้นคือ []
รายการการอ้างอิง ไม่บังคับ
runtime_deps sequence ของ struct ค่าเริ่มต้นคือ []
รายการการอ้างอิงรันไทม์ ไม่บังคับ
exports sequence ของ structs; ค่าเริ่มต้นคือ []
รายการการส่งออก ไม่บังคับ
plugins ลำดับของ struct หรือลำดับของ struct ค่าเริ่มต้นคือ []
รายการปลั๊กอิน ไม่บังคับ
exported_plugins ลำดับของ struct หรือลำดับของ struct ค่าเริ่มต้นคือ []
รายการปลั๊กอินที่ส่งออก ไม่บังคับ
native_libraries sequence ของ CcInfos; ค่าเริ่มต้นคือ []
ทรัพยากร Dependency ของไลบรารี CC แบบเนทีฟที่จำเป็นสำหรับไลบรารีนี้
annotation_processor_additional_inputs ลำดับของไฟล์ ค่าเริ่มต้นคือ []
รายการอินพุตที่การดำเนินการคอมไพล์ Java จะใช้เพิ่มเติมจากแหล่งที่มาของ Java สำหรับการประมวลผลคำอธิบายประกอบ
annotation_processor_additional_outputs ลำดับของไฟล์ ค่าเริ่มต้นคือ []
รายการเอาต์พุตที่การดำเนินการคอมไพล์ Java จะแสดงเพิ่มเติมจาก JAR ของคลาสจากการประมวลผลคำอธิบายประกอบ
strict_deps ค่าเริ่มต้นคือ 'ERROR'
สตริงที่ระบุวิธีจัดการกับ Strict Deps ค่าที่เป็นไปได้ ได้แก่ "OFF" "ERROR" "WARN" และ "DEFAULT" ดูรายละเอียดเพิ่มเติมได้ที่ /docs/user-manual#flag--strict_java_deps โดยค่าเริ่มต้นคือ "ERROR"
java_toolchain required
JavaToolchainInfo ที่จะใช้สำหรับการคอมไพล์นี้ บังคับ
bootclasspath ค่าเริ่มต้นคือ None
A BootClassPathInfo to be used for this compilation. หากมี จะลบล้าง bootclasspath ที่เชื่อมโยงกับ java_toolchain ที่ระบุ ไม่บังคับ
host_javabase ค่าเริ่มต้นคือ None
เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ฟีเจอร์นี้ --+incompatible_java_common_parameters จะปิดใช้ ใช้ฟีเจอร์นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนำออกที่กำลังจะเกิดขึ้น
เลิกใช้งานแล้ว: คุณสามารถทิ้งพารามิเตอร์นี้ได้ (host_javabase มีให้พร้อมกับ java_toolchain)
sourcepath ลำดับของไฟล์ ค่าเริ่มต้นคือ []
resources ลำดับของไฟล์ ค่าเริ่มต้นคือ []
resource_jars ลำดับของไฟล์ ค่าเริ่มต้นคือ []
classpath_resources ลำดับของไฟล์ ค่าเริ่มต้นคือ []
ค่าเริ่มต้นคือ False
enable_annotation_processing ค่าเริ่มต้นคือ True
ปิดใช้การประมวลผลคำอธิบายประกอบในการคอมไพล์นี้ ซึ่งจะทำให้ระบบละเว้นโปรเซสเซอร์คำอธิบายประกอบที่ระบุไว้ในปลั๊กอินหรือใน exported_plugins ของ deps
enable_compile_jar_action ค่าเริ่มต้นคือ 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 ลำดับของ structs required
รายการผู้ให้บริการที่จะผสาน

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 อย่างน้อย 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 required
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)

เรียกใช้ ijar ในไฟล์ JAR โดยนำเนื้อหาของเมธอดออก ซึ่งจะช่วยลดการสร้างไฟล์ JAR ที่ขึ้นต่อกันใหม่ในระหว่างการคอมไพล์ใหม่ที่มีเพียงการเปลี่ยนแปลงเล็กน้อยในการใช้งานเมธอด โดยปกติแล้ว ระบบจะส่งค่าที่แสดงผลไปยัง JavaInfo#compile_jar

พารามิเตอร์

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

stamp_jar

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

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

พารามิเตอร์

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