กฎ
- java_binary
- java_import
- java_library
- java_test
- java_package_configuration
- java_plugin
- java_runtime
- java_single_jar
- java_toolchain
java_binary
ดูแหล่งที่มาของกฎjava_binary(name, deps, srcs, data, resources, add_exports, add_opens, args, bootclasspath, classpath_resources, compatible_with, create_executable, deploy_env, deploy_manifest_lines, deprecation, env, exec_compatible_with, exec_group_compatible_with, exec_properties, features, javacopts, jvm_flags, launcher, licenses, main_class, neverlink, output_licenses, package_metadata, plugins, resource_strip_prefix, restricted_to, runtime_deps, stamp, tags, target_compatible_with, testonly, toolchains, use_launcher, use_testrunner, visibility)
สร้างที่เก็บถาวร Java ("ไฟล์ JAR") รวมถึงสคริปต์เชลล์ Wrapper ที่มีชื่อเดียวกับกฎ
สคริปต์เชลล์ Wrapper ใช้ Classpath ซึ่งรวมถึงไฟล์ JAR สำหรับไลบรารีแต่ละรายการที่ไบนารีต้องใช้ เมื่อเรียกใช้สคริปต์เชลล์ของ Wrapper ตัวแปรสภาพแวดล้อมใดๆ ที่ไม่ว่างเปล่า
JAVABIN
จะมีลำดับความสำคัญเหนือกว่าเวอร์ชันที่ระบุผ่านแฟล็ก --java_runtime_version
ของ Bazel
สคริปต์ Wrapper ยอมรับแฟล็กที่ไม่ซ้ำกันหลายรายการ โปรดดู
java_stub_template.txt
เพื่อดูรายการค่าสถานะและตัวแปรสภาพแวดล้อมที่กำหนดค่าได้ซึ่ง Wrapper ยอมรับ
เป้าหมายเอาต์พุตโดยนัย
name.jar
: ที่เก็บถาวรของ Java ซึ่งมีไฟล์คลาสและทรัพยากรอื่นๆ ที่สอดคล้องกับการอ้างอิงโดยตรงของไบนารีname-src.jar
: อาร์ไคฟ์ที่มีแหล่งที่มา ("source jar")name_deploy.jar
: ไฟล์เก็บถาวร Java ที่เหมาะสําหรับการติดตั้งใช้งาน (สร้างขึ้นเฉพาะในกรณีที่มีการขออย่างชัดแจ้ง)การสร้าง
<name>_deploy.jar
เป้าหมายสำหรับกฎ จะสร้างไฟล์ JAR แบบสแตนด์อโลนที่มีไฟล์ Manifest ซึ่งช่วยให้เรียกใช้ได้ด้วยคำสั่งjava -jar
หรือด้วยตัวเลือก--singlejar
ของสคริปต์ Wrapper เราขอแนะนำให้ใช้สคริปต์ Wrapper แทนjava -jar
เนื่องจากสคริปต์นี้ ยังส่งแฟล็ก JVM และตัวเลือก เพื่อโหลดไลบรารีเนทีฟด้วยไฟล์ JAR ที่ใช้ในการติดตั้งใช้งานมีคลาสทั้งหมดที่ ClassLoader ค้นพบ ซึ่งค้นหา Classpath จากสคริปต์ Wrapper ของไบนารีตั้งแต่ต้นจนจบ นอกจากนี้ ยังมีไลบรารีเนทีฟที่จำเป็นสำหรับทรัพยากร Dependency ด้วย ระบบจะโหลดไฟล์เหล่านี้ ลงใน JVM โดยอัตโนมัติในขณะรันไทม์
หากเป้าหมายระบุแอตทริบิวต์ตัวเรียกใช้ แทนที่จะเป็นไฟล์ JAR ปกติ _deploy.jar จะเป็น ไบนารีเนทีฟ ซึ่งจะมีตัวเรียกใช้และทรัพยากร Dependency ดั้งเดิม (C++) ของ กฎของคุณทั้งหมดที่ลิงก์กับไบนารีแบบคงที่ ไบต์ของไฟล์ JAR จริงจะ ต่อท้ายไบนารีเนทีฟนั้น ทำให้เกิด Blob ไบนารีเดียวที่มีทั้ง โค้ดที่เรียกใช้งานได้และโค้ด Java คุณสามารถเรียกใช้ไฟล์ JAR ที่ได้โดยตรง เช่นเดียวกับการเรียกใช้ไบนารีเนทีฟ
name_deploy-src.jar
: ที่เก็บถาวรที่มีแหล่งที่มา ที่รวบรวมจากทรานซิทีฟโคลเชอร์ของเป้าหมาย ซึ่งจะตรงกับคลาสในdeploy.jar
ยกเว้นในกรณีที่ JAR ไม่มี JAR ต้นฉบับที่ตรงกัน
แนวทางปฏิบัติแนะนำคือการใช้ชื่อของไฟล์ต้นฉบับซึ่งเป็นจุดแรกเข้าหลักของ
แอปพลิเคชัน (ไม่รวมนามสกุล) เช่น หากจุดแรกเข้าชื่อ
Main.java
ชื่อของคุณอาจเป็น Main
ไม่อนุญาตให้ใช้แอตทริบิวต์ deps
ในกฎ java_binary
ที่ไม่มี srcs
กฎดังกล่าวต้องมี main_class
ที่ได้รับจาก runtime_deps
ข้อมูลโค้ดต่อไปนี้แสดงข้อผิดพลาดที่พบบ่อย
java_binary(
name = "DontDoThis",
srcs = [
... ,
"GeneratedJavaFile.java"
, # a generated .java file
],
deps = [":generating_rule",
], # rule that generates that file
)
ให้ทำดังนี้แทน
java_binary(
name = "DoThisInstead",
srcs = [
... ,
":generating_rule",
],
)
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ deps ที่
แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
|
srcs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ
คอมไพล์ไฟล์ต้นฉบับประเภท
ระบบจะแตกไฟล์ต้นฉบับประเภท
กฎ: หากกฎ (โดยปกติคือ
โดยปกติแล้ว คุณจะต้องระบุอาร์กิวเมนต์นี้เสมอ ยกเว้นในกรณีที่แอตทริบิวต์
|
data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ data
ที่แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
|
resources
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น
หากมีการระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับไฟล์ |
add_exports
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ package ที่ระบุ
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยใช้การสะท้อน
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-opens= |
bootclasspath
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
classpath_resources
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ
รายการทรัพยากรที่ต้องอยู่ในรูทของแผนผัง Java แอตทริบิวต์นี้มีจุดประสงค์เพียงเพื่อรองรับไลบรารีของบุคคลที่สามที่กำหนดให้ต้องค้นหาทรัพยากรในเส้นทางคลาสเป็น |
create_executable
|
บูลีน ค่าเริ่มต้นคือ java_single_jar แทน
|
deploy_env
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ java_binary ที่แสดงถึงสภาพแวดล้อมการติดตั้งใช้งาน
สำหรับไบนารีนี้
ตั้งค่าแอตทริบิวต์นี้เมื่อสร้างปลั๊กอินที่จะโหลดโดย java_binary อื่นการตั้งค่าแอตทริบิวต์นี้จะยกเว้นการขึ้นต่อกันทั้งหมดจาก Classpath ของรันไทม์ (และไฟล์ JAR ที่ใช้ในการติดตั้งใช้งาน) ของไบนารีนี้ซึ่งแชร์ระหว่างไบนารีนี้กับเป้าหมายที่ระบุใน deploy_env
|
deploy_manifest_lines
|
รายการสตริง ค่าเริ่มต้นคือ META-INF/manifest.mf ที่สร้างขึ้นสําหรับเป้าหมาย
*_deploy.jar เนื้อหาของแอตทริบิวต์นี้ไม่ขึ้นอยู่กับ
การแทนที่"สร้างตัวแปร"
|
javacopts
|
รายการสตริง ค่าเริ่มต้นคือ ตัวเลือกคอมไพเลอร์เหล่านี้จะส่งไปยัง javac หลังจากตัวเลือกคอมไพเลอร์ส่วนกลาง |
jvm_flags
|
รายการสตริง ค่าเริ่มต้นคือ สคริปต์ Wrapper สำหรับไบนารี Java มีคำจำกัดความ CLASSPATH
(เพื่อค้นหา JAR ที่ขึ้นต่อกันทั้งหมด) และเรียกใช้ตัวแปล Java ที่ถูกต้อง
บรรทัดคำสั่งที่สคริปต์ Wrapper สร้างขึ้นจะมีชื่อของ
คลาสหลักตามด้วย โปรดทราบว่าแอตทริบิวต์นี้ไม่มีผลต่อ |
launcher
|
ป้ายกำกับ ค่าเริ่มต้นคือ bin/java ปกติที่รวมอยู่ใน JDK
เป้าหมายต้องเป็น cc_binary cc_binary ที่
ใช้
Java Invocation API สามารถระบุเป็นค่าสำหรับแอตทริบิวต์นี้ได้
โดยค่าเริ่มต้น Bazel จะใช้ตัวเรียกใช้ JDK ปกติ (bin/java หรือ java.exe) แฟล็ก โปรดทราบว่าระบบจะสร้างการอ้างอิงดั้งเดิม (C++, SWIG, JNI) ของคุณแตกต่างกัน โดยขึ้นอยู่กับว่าคุณใช้ตัวเรียกใช้ JDK หรือตัวเรียกใช้อื่น
เมื่อใช้ตัวเรียกใช้ที่ไม่ใช่ตัวเรียกใช้ JDK เริ่มต้น รูปแบบของ |
main_class
|
สตริง ค่าเริ่มต้นคือ main() เมธอดที่จะใช้เป็นจุดแรกเข้า
หากกฎใช้ตัวเลือกนี้ ก็ไม่จำเป็นต้องมีsrcs=[...] รายการ
ดังนั้น คุณจึงใช้แอตทริบิวต์นี้เพื่อสร้างไฟล์ที่เรียกใช้งานได้จากไลบรารี Java ที่มีเมธอด main() อย่างน้อย 1 รายการอยู่แล้ว
ค่าของแอตทริบิวต์นี้คือชื่อคลาส ไม่ใช่ไฟล์ต้นฉบับ คลาสต้องพร้อมใช้งานในเวลาเรียกใช้ โดยอาจคอมไพล์โดยกฎนี้ (จาก |
neverlink
|
บูลีน ค่าเริ่มต้นคือ |
plugins
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ java_plugin ที่ระบุในแอตทริบิวต์นี้เมื่อใดก็ตามที่มีการสร้างกฎนี้
ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้
exported_plugins ด้วย ระบบจะรวมทรัพยากร
ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
runtime_deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ deps ทั่วไป ไฟล์เหล่านี้จะปรากฏใน classpath ของรันไทม์ แต่จะไม่ปรากฏใน classpath ของเวลาคอมไพล์ การขึ้นต่อกันที่จำเป็นเฉพาะในรันไทม์ควร
แสดงไว้ที่นี่ เครื่องมือวิเคราะห์การขึ้นต่อกันควรละเว้นเป้าหมายที่ปรากฏทั้งใน
runtime_deps และ deps
|
stamp
|
จำนวนเต็ม ค่าเริ่มต้นคือ
ระบบไม่สร้างไบนารีที่ประทับเวลาใหม่ เว้นแต่ว่ามีการเปลี่ยนแปลงในทรัพยากร Dependency |
use_launcher
|
บูลีน ค่าเริ่มต้นคือ หากตั้งค่าแอตทริบิวต์นี้เป็น "เท็จ" ระบบจะไม่สนใจแอตทริบิวต์
launcher และแฟล็กที่เกี่ยวข้อง
|
use_testrunner
|
บูลีน ค่าเริ่มต้นคือ com.google.testing.junit.runner.BazelTestRunner ) เป็น
จุดแรกเข้าหลักสำหรับโปรแกรม Java และระบุคลาสการทดสอบ
ให้กับ Test Runner เป็นค่าของbazel.test_suite
พร็อพเพอร์ตี้ของระบบ
คุณใช้ตัวเลือกนี้เพื่อลบล้างลักษณะการทำงานเริ่มต้นได้ ซึ่งคือการใช้เครื่องมือเรียกใช้การทดสอบสำหรับกฎ java_test
และไม่ใช้สำหรับกฎ java_binary คุณไม่น่าจะต้องการทำเช่นนี้
กรณีการใช้งานอย่างหนึ่งคือสำหรับAllTest
กฎที่เรียกใช้โดยกฎอื่น (เช่น เพื่อตั้งค่าฐานข้อมูล
ก่อนเรียกใช้การทดสอบ) ต้องประกาศAllTest
กฎเป็น java_binary แต่ควร
ยังคงใช้โปรแกรมเรียกใช้การทดสอบเป็นจุดแรกเข้าหลัก
คุณลบล้างชื่อของคลาสโปรแกรมเรียกใช้การทดสอบได้ด้วยแอตทริบิวต์ main_class
|
java_import
ดูแหล่งที่มาของกฎjava_import(name, deps, data, add_exports, add_opens, compatible_with, constraints, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, exports, features, jars, licenses, neverlink, package_metadata, proguard_specs, restricted_to, runtime_deps, srcjar, tags, target_compatible_with, testonly, toolchains, visibility)
กฎนี้อนุญาตให้ใช้ไฟล์ .jar
ที่คอมไพล์ล่วงหน้าเป็น
ไลบรารีสำหรับกฎ java_library
และ
java_binary
ตัวอย่าง
java_import(
name = "maven_model",
jars = [
"maven_model/maven-aether-provider-3.2.3.jar",
"maven_model/maven-model-3.2.3.jar",
"maven_model/maven-model-builder-3.2.3.jar",
],
)
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
add_exports
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ package ที่ระบุ
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยใช้การสะท้อน
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-opens= |
constraints
|
รายการสตริง ค่าเริ่มต้นคือ |
exports
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
jars
|
รายการป้ายกำกับ (ต้องระบุ) รายการไฟล์ JAR ที่ระบุให้กับเป้าหมาย Java ที่ขึ้นอยู่กับเป้าหมายนี้ |
neverlink
|
บูลีน ค่าเริ่มต้นคือ tools.jar สำหรับทุกอย่างที่ทำงานบน
JDK มาตรฐาน
|
proguard_specs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ android_binary ใดก็ตามโดยขึ้นอยู่กับคลังนี้
ไฟล์ที่รวมไว้ที่นี่ต้องมีเฉพาะกฎที่ไม่มีผลข้างเคียง ได้แก่ -dontnote, -dontwarn,
assumenosideeffects และกฎที่ขึ้นต้นด้วย -keep ส่วนตัวเลือกอื่นๆ จะปรากฏได้เฉพาะใน
android_binary proguard_specs เพื่อให้แน่ใจว่าการผสานจะไม่ซ้ำซ้อน
|
runtime_deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
srcjar
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
java_library
ดูแหล่งที่มาของกฎjava_library(name, deps, srcs, data, resources, add_exports, add_opens, bootclasspath, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, exported_plugins, exports, features, javabuilder_jvm_flags, javacopts, licenses, neverlink, package_metadata, plugins, proguard_specs, resource_strip_prefix, restricted_to, runtime_deps, tags, target_compatible_with, testonly, toolchains, visibility)
กฎนี้จะรวบรวมและลิงก์แหล่งข้อมูลลงในไฟล์ .jar
เอาต์พุตโดยนัย
libname.jar
: ที่เก็บถาวรของ Java ที่มีไฟล์คลาสlibname-src.jar
: อาร์ไคฟ์ที่มีแหล่งที่มา ("source jar")
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ deps ที่
แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
ไฟล์ JAR ที่สร้างโดยกฎ
ในทางตรงกันข้าม เป้าหมายในแอตทริบิวต์ |
srcs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ
คอมไพล์ไฟล์ต้นฉบับประเภท
ระบบจะแตกไฟล์ต้นฉบับประเภท
กฎ: หากกฎ (โดยปกติคือ
ไฟล์ต้นฉบับประเภท ระบบจะไม่สนใจไฟล์อื่นๆ ทั้งหมด ตราบใดที่มีไฟล์ประเภทใดประเภทหนึ่งตามที่อธิบายไว้ข้างต้นอย่างน้อย 1 ไฟล์ ไม่เช่นนั้นระบบจะแสดงข้อผิดพลาด
คุณต้องระบุอาร์กิวเมนต์นี้เสมอ เว้นแต่จะระบุอาร์กิวเมนต์ |
data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ data ที่
แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
เมื่อสร้าง |
resources
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น
หากมีการระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับไฟล์ |
add_exports
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ package ที่ระบุ
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยใช้การสะท้อน
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-opens= |
bootclasspath
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
exported_plugins
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ java_plugin (เช่น annotation
processors) ที่จะส่งออกไปยังไลบรารีที่ขึ้นต่อกันกับไลบรารีนี้โดยตรง
ระบบจะใช้รายการ |
exports
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ
การระบุกฎที่นี่จะทำให้กฎดังกล่าวพร้อมใช้งานกับกฎระดับบนสุด ราวกับว่ากฎระดับบนสุดขึ้นอยู่กับกฎเหล่านี้อย่างชัดเจน
แต่จะไม่เป็นเช่นนั้นสำหรับ
สรุป: กฎ X จะเข้าถึงโค้ดใน Y ได้หากมีเส้นทางการอ้างอิง
ระหว่างกฎทั้ง 2 ซึ่งเริ่มต้นด้วยขอบ
สมมติว่า A ขึ้นอยู่กับ B และ B ขึ้นอยู่กับ C ในกรณีนี้
C เป็นการขึ้นต่อกันแบบทรานซิทีฟของ A ดังนั้นการเปลี่ยนแหล่งที่มาของ C และการสร้าง A ใหม่จะ
สร้างทุกอย่างใหม่ได้อย่างถูกต้อง แต่ A จะใช้ชั้นเรียนใน C ไม่ได้ หากต้องการอนุญาต
ดังกล่าว A ต้องประกาศ C ใน การปิดไลบรารีที่ส่งออกจะใช้ได้กับกฎระดับบนสุดโดยตรงทั้งหมด ลองดูตัวอย่างที่แตกต่างกันเล็กน้อย: A ขึ้นอยู่กับ B, B ขึ้นอยู่กับ C และ D และยังส่งออก C แต่ไม่ส่งออก D ตอนนี้ A มีสิทธิ์เข้าถึง C แต่ไม่มีสิทธิ์เข้าถึง D ตอนนี้หาก C และ D ส่งออกไลบรารีบางรายการ C' และ D' ตามลำดับ A จะเข้าถึงได้เฉพาะ C' แต่เข้าถึง D' ไม่ได้
สำคัญ: กฎที่ส่งออกไม่ใช่การอ้างอิงปกติ จากตัวอย่างก่อนหน้า
หาก B ส่งออก C และต้องการใช้ C ด้วย ก็ต้องแสดง C ใน |
javabuilder_jvm_flags
|
รายการสตริง ค่าเริ่มต้นคือ |
javacopts
|
รายการสตริง ค่าเริ่มต้นคือ ตัวเลือกคอมไพเลอร์เหล่านี้จะส่งไปยัง javac หลังจากตัวเลือกคอมไพเลอร์ส่วนกลาง |
neverlink
|
บูลีน ค่าเริ่มต้นคือ tools.jar สำหรับทุกอย่าง
ที่ทำงานบน JDK มาตรฐาน
โปรดทราบว่า หากไลบรารีรันไทม์แตกต่างจากไลบรารีการคอมไพล์ คุณต้องตรวจสอบว่าไลบรารีรันไทม์ แตกต่างกันเฉพาะในที่ที่ JLS ห้ามไม่ให้คอมไพเลอร์อินไลน์ (และต้องเป็นเช่นนั้นสำหรับ JLS ทุกเวอร์ชันในอนาคต) |
plugins
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ java_plugin ที่ระบุในแอตทริบิวต์นี้เมื่อใดก็ตามที่มีการสร้างกฎนี้
ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้
exported_plugins ด้วย ระบบจะรวมทรัพยากร
ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้
|
proguard_specs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ android_binary ใดก็ตามโดยขึ้นอยู่กับคลังนี้
ไฟล์ที่รวมไว้ที่นี่ต้องมีเฉพาะกฎที่ไม่มีผลข้างเคียง ได้แก่ -dontnote, -dontwarn,
assumenosideeffects และกฎที่ขึ้นต้นด้วย -keep ส่วนตัวเลือกอื่นๆ จะปรากฏได้เฉพาะใน
android_binary proguard_specs เพื่อให้แน่ใจว่าการผสานจะไม่ซ้ำซ้อน
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
runtime_deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ deps ทั่วไป ไฟล์เหล่านี้จะปรากฏใน classpath ของรันไทม์ แต่จะไม่ปรากฏใน classpath ของเวลาคอมไพล์ การขึ้นต่อกันที่จำเป็นเฉพาะในรันไทม์ควร
แสดงไว้ที่นี่ เครื่องมือวิเคราะห์การขึ้นต่อกันควรละเว้นเป้าหมายที่ปรากฏทั้งใน
runtime_deps และ deps
|
java_test
ดูแหล่งที่มาของกฎjava_test(name, deps, srcs, data, resources, add_exports, add_opens, args, bootclasspath, classpath_resources, compatible_with, create_executable, deploy_manifest_lines, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, javacopts, jvm_flags, launcher, licenses, local, main_class, neverlink, package_metadata, plugins, resource_strip_prefix, restricted_to, runtime_deps, shard_count, size, stamp, tags, target_compatible_with, test_class, testonly, timeout, toolchains, use_launcher, use_testrunner, visibility)
java_test()
กฎจะคอมไพล์การทดสอบ Java การทดสอบคือ Wrapper แบบไบนารีที่อยู่รอบๆ
โค้ดทดสอบ ระบบจะเรียกใช้เมธอดหลักของโปรแกรมเรียกใช้การทดสอบแทนที่จะคอมไพล์คลาสหลัก
เป้าหมายเอาต์พุตโดยนัย
name.jar
: ที่เก็บถาวร Javaname_deploy.jar
: ไฟล์เก็บถาวร Java ที่เหมาะ สำหรับการติดตั้งใช้งาน (สร้างขึ้นเฉพาะในกรณีที่มีการขออย่างชัดเจนเท่านั้น) ดูรายละเอียดเพิ่มเติมได้ในคำอธิบายของname_deploy.jar
เอาต์พุตจาก java_binary
ดูส่วนเกี่ยวกับอาร์กิวเมนต์ของ java_binary()
นอกจากนี้ กฎนี้ยังรองรับแอตทริบิวต์ทั่วไป
ทั้งหมดของกฎการทดสอบทั้งหมด (*_test) ด้วย
ตัวอย่าง
java_library(
name = "tests",
srcs = glob(["*.java"]),
deps = [
"//java/com/foo/base:testResources",
"//java/com/foo/testing/util",
],
)
java_test(
name = "AllTests",
size = "small",
runtime_deps = [
":tests",
"//util/mysql",
],
)
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ deps ที่
แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
|
srcs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ
คอมไพล์ไฟล์ต้นฉบับประเภท
ระบบจะแตกไฟล์ต้นฉบับประเภท
กฎ: หากกฎ (โดยปกติคือ
โดยปกติแล้ว คุณจะต้องระบุอาร์กิวเมนต์นี้เสมอ ยกเว้นในกรณีที่แอตทริบิวต์
|
data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ data
ที่แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
|
resources
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น
หากมีการระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับไฟล์ |
add_exports
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ package ที่ระบุ
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยใช้การสะท้อน
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-opens= |
bootclasspath
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
classpath_resources
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ
รายการทรัพยากรที่ต้องอยู่ในรูทของแผนผัง Java แอตทริบิวต์นี้มีจุดประสงค์เพียงเพื่อรองรับไลบรารีของบุคคลที่สามที่กำหนดให้ต้องค้นหาทรัพยากรในเส้นทางคลาสเป็น |
create_executable
|
บูลีน ค่าเริ่มต้นคือ java_single_jar แทน
|
deploy_manifest_lines
|
รายการสตริง ค่าเริ่มต้นคือ META-INF/manifest.mf ที่สร้างขึ้นสําหรับเป้าหมาย
*_deploy.jar เนื้อหาของแอตทริบิวต์นี้ไม่ขึ้นอยู่กับ
การแทนที่"สร้างตัวแปร"
|
javacopts
|
รายการสตริง ค่าเริ่มต้นคือ ตัวเลือกคอมไพเลอร์เหล่านี้จะส่งไปยัง javac หลังจากตัวเลือกคอมไพเลอร์ส่วนกลาง |
jvm_flags
|
รายการสตริง ค่าเริ่มต้นคือ สคริปต์ Wrapper สำหรับไบนารี Java มีคำจำกัดความ CLASSPATH
(เพื่อค้นหา JAR ที่ขึ้นต่อกันทั้งหมด) และเรียกใช้ตัวแปล Java ที่ถูกต้อง
บรรทัดคำสั่งที่สคริปต์ Wrapper สร้างขึ้นจะมีชื่อของ
คลาสหลักตามด้วย โปรดทราบว่าแอตทริบิวต์นี้ไม่มีผลต่อ |
launcher
|
ป้ายกำกับ ค่าเริ่มต้นคือ bin/java ปกติที่รวมอยู่ใน JDK
เป้าหมายต้องเป็น cc_binary cc_binary ที่
ใช้
Java Invocation API สามารถระบุเป็นค่าสำหรับแอตทริบิวต์นี้ได้
โดยค่าเริ่มต้น Bazel จะใช้ตัวเรียกใช้ JDK ปกติ (bin/java หรือ java.exe) แฟล็ก โปรดทราบว่าระบบจะสร้างการอ้างอิงดั้งเดิม (C++, SWIG, JNI) ของคุณแตกต่างกัน โดยขึ้นอยู่กับว่าคุณใช้ตัวเรียกใช้ JDK หรือตัวเรียกใช้อื่น
เมื่อใช้ตัวเรียกใช้ที่ไม่ใช่ตัวเรียกใช้ JDK เริ่มต้น รูปแบบของ |
main_class
|
สตริง ค่าเริ่มต้นคือ main() เมธอดที่จะใช้เป็นจุดแรกเข้า
หากกฎใช้ตัวเลือกนี้ ก็ไม่จำเป็นต้องมีsrcs=[...] รายการ
ดังนั้น คุณจึงใช้แอตทริบิวต์นี้เพื่อสร้างไฟล์ที่เรียกใช้งานได้จากไลบรารี Java ที่มีเมธอด main() อย่างน้อย 1 รายการอยู่แล้ว
ค่าของแอตทริบิวต์นี้คือชื่อคลาส ไม่ใช่ไฟล์ต้นฉบับ คลาสต้องพร้อมใช้งานในเวลาเรียกใช้ โดยอาจคอมไพล์โดยกฎนี้ (จาก |
neverlink
|
บูลีน ค่าเริ่มต้นคือ |
plugins
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ java_plugin ที่ระบุในแอตทริบิวต์นี้เมื่อใดก็ตามที่มีการสร้างกฎนี้
ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้
exported_plugins ด้วย ระบบจะรวมทรัพยากร
ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
runtime_deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ deps ทั่วไป ไฟล์เหล่านี้จะปรากฏใน classpath ของรันไทม์ แต่จะไม่ปรากฏใน classpath ของเวลาคอมไพล์ การขึ้นต่อกันที่จำเป็นเฉพาะในรันไทม์ควร
แสดงไว้ที่นี่ เครื่องมือวิเคราะห์การขึ้นต่อกันควรละเว้นเป้าหมายที่ปรากฏทั้งใน
runtime_deps และ deps
|
stamp
|
จำนวนเต็ม ค่าเริ่มต้นคือ
ระบบไม่สร้างไบนารีที่ประทับเวลาใหม่ เว้นแต่ว่ามีการเปลี่ยนแปลงในทรัพยากร Dependency |
test_class
|
สตริง ค่าเริ่มต้นคือ
โดยค่าเริ่มต้น หากไม่ได้กำหนดอาร์กิวเมนต์นี้ ระบบจะใช้โหมดเดิมและใช้อาร์กิวเมนต์การทดสอบแทน ตั้งค่าสถานะ
แอตทริบิวต์นี้ระบุชื่อของคลาส Java ที่การทดสอบนี้จะเรียกใช้ ไม่ค่อยมีความจำเป็นในการตั้งค่านี้ หากเว้นอาร์กิวเมนต์นี้ไว้ ระบบจะอนุมานโดยใช้
สำหรับ JUnit3 คลาสทดสอบต้องเป็นคลาสย่อยของ
แอตทริบิวต์นี้ช่วยให้ |
use_launcher
|
บูลีน ค่าเริ่มต้นคือ หากตั้งค่าแอตทริบิวต์นี้เป็น "เท็จ" ระบบจะไม่สนใจแอตทริบิวต์
launcher และแฟล็กที่เกี่ยวข้อง
|
use_testrunner
|
บูลีน ค่าเริ่มต้นคือ com.google.testing.junit.runner.BazelTestRunner ) เป็น
จุดแรกเข้าหลักสำหรับโปรแกรม Java และระบุคลาสการทดสอบ
ให้กับ Test Runner เป็นค่าของbazel.test_suite
พร็อพเพอร์ตี้ของระบบ
คุณใช้ตัวเลือกนี้เพื่อลบล้างลักษณะการทำงานเริ่มต้นได้ ซึ่งคือการใช้เครื่องมือเรียกใช้การทดสอบสำหรับกฎ java_test
และไม่ใช้สำหรับกฎ java_binary คุณไม่น่าจะต้องการทำเช่นนี้
กรณีการใช้งานอย่างหนึ่งคือสำหรับAllTest
กฎที่เรียกใช้โดยกฎอื่น (เช่น เพื่อตั้งค่าฐานข้อมูล
ก่อนเรียกใช้การทดสอบ) ต้องประกาศAllTest
กฎเป็น java_binary แต่ควร
ยังคงใช้โปรแกรมเรียกใช้การทดสอบเป็นจุดแรกเข้าหลัก
คุณลบล้างชื่อของคลาสโปรแกรมเรียกใช้การทดสอบได้ด้วยแอตทริบิวต์ main_class
|
java_package_configuration
ดูแหล่งที่มาของกฎjava_package_configuration(name, data, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, javacopts, output_licenses, package_metadata, packages, restricted_to, system, tags, target_compatible_with, testonly, toolchains, visibility)
การกำหนดค่าที่จะใช้กับชุดแพ็กเกจ
คุณเพิ่มการกำหนดค่าลงในjava_toolchain.javacopts
ได้
ตัวอย่าง
java_package_configuration(
name = "my_configuration",
packages = [":my_packages"],
javacopts = ["-Werror"],
)
package_group(
name = "my_packages",
packages = [
"//com/my/project/...",
"-//com/my/project/testing/...",
],
)
java_toolchain(
...,
package_configuration = [
":my_configuration",
]
)
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
javacopts
|
รายการสตริง ค่าเริ่มต้นคือ |
output_licenses
|
รายการสตริง ค่าเริ่มต้นคือ |
packages
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ package_group
ที่ควรใช้การกำหนดค่า
|
system
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
java_plugin
ดูแหล่งที่มาของกฎjava_plugin(name, deps, srcs, data, resources, add_exports, add_opens, bootclasspath, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, generates_api, javabuilder_jvm_flags, javacopts, licenses, neverlink, output_licenses, package_metadata, plugins, processor_class, proguard_specs, resource_strip_prefix, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_plugin
กำหนดปลั๊กอินสำหรับคอมไพเลอร์ Java ที่ Bazel เรียกใช้ ปลั๊กอินที่รองรับมีเพียง
ตัวประมวลผลคำอธิบายประกอบเท่านั้น กฎ java_library
หรือ java_binary
สามารถเรียกใช้ปลั๊กอินได้โดยขึ้นอยู่กับปลั๊กอินเหล่านั้นผ่านแอตทริบิวต์ plugins
java_library
ยังส่งออกปลั๊กอินไปยังไลบรารีที่ขึ้นต่อกันโดยตรงได้โดยอัตโนมัติโดยใช้
exported_plugins
เป้าหมายเอาต์พุตโดยนัย
libname.jar
: ที่เก็บถาวร Java
อาร์กิวเมนต์เป็นส่วนย่อยของ (และมีความหมายเหมือนกับ) อาร์กิวเมนต์ของ
java_library()
ยกเว้นอาร์กิวเมนต์ processor_class
และ
generates_api
ที่เพิ่มเข้ามา
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ deps ที่
แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
ไฟล์ JAR ที่สร้างโดยกฎ
ในทางตรงกันข้าม เป้าหมายในแอตทริบิวต์ |
srcs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ
คอมไพล์ไฟล์ต้นฉบับประเภท
ระบบจะแตกไฟล์ต้นฉบับประเภท
กฎ: หากกฎ (โดยปกติคือ
ไฟล์ต้นฉบับประเภท ระบบจะไม่สนใจไฟล์อื่นๆ ทั้งหมด ตราบใดที่มีไฟล์ประเภทใดประเภทหนึ่งตามที่อธิบายไว้ข้างต้นอย่างน้อย 1 ไฟล์ ไม่เช่นนั้นระบบจะแสดงข้อผิดพลาด
คุณต้องระบุอาร์กิวเมนต์นี้เสมอ เว้นแต่จะระบุอาร์กิวเมนต์ |
data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ data ที่
แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
เมื่อสร้าง |
resources
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น
หากมีการระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับไฟล์ |
add_exports
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ package ที่ระบุ
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยใช้การสะท้อน
ซึ่งสอดคล้องกับแฟล็ก javac และ JVM --add-opens= |
bootclasspath
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
generates_api
|
บูลีน ค่าเริ่มต้นคือ หากกฎใช้ตัวประมวลผลคำอธิบายประกอบที่สร้าง API กฎอื่นๆ ที่ขึ้นอยู่กับกฎนั้นจะอ้างอิงโค้ดที่สร้างขึ้นได้ก็ต่อเมื่อ กำหนดเวลาการดำเนินการคอมไพล์หลังจากกฎการสร้าง แอตทริบิวต์นี้ จะสั่งให้ Bazel กำหนดข้อจำกัดในการจัดกำหนดการเมื่อ เปิดใช้ --java_header_compilation คำเตือน: แอตทริบิวต์นี้ส่งผลต่อประสิทธิภาพการสร้าง โปรดใช้เฉพาะในกรณีที่จำเป็น |
javabuilder_jvm_flags
|
รายการสตริง ค่าเริ่มต้นคือ |
javacopts
|
รายการสตริง ค่าเริ่มต้นคือ ตัวเลือกคอมไพเลอร์เหล่านี้จะส่งไปยัง javac หลังจากตัวเลือกคอมไพเลอร์ส่วนกลาง |
neverlink
|
บูลีน ค่าเริ่มต้นคือ tools.jar สำหรับทุกอย่าง
ที่ทำงานบน JDK มาตรฐาน
โปรดทราบว่า หากไลบรารีรันไทม์แตกต่างจากไลบรารีการคอมไพล์ คุณต้องตรวจสอบว่าไลบรารีรันไทม์ แตกต่างกันเฉพาะในที่ที่ JLS ห้ามไม่ให้คอมไพเลอร์อินไลน์ (และต้องเป็นเช่นนั้นสำหรับ JLS ทุกเวอร์ชันในอนาคต) |
output_licenses
|
รายการสตริง ค่าเริ่มต้นคือ |
plugins
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ java_plugin ที่ระบุในแอตทริบิวต์นี้เมื่อใดก็ตามที่มีการสร้างกฎนี้
ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้
exported_plugins ด้วย ระบบจะรวมทรัพยากร
ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้
|
processor_class
|
สตริง ค่าเริ่มต้นคือ |
proguard_specs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ android_binary ใดก็ตามโดยขึ้นอยู่กับคลังนี้
ไฟล์ที่รวมไว้ที่นี่ต้องมีเฉพาะกฎที่ไม่มีผลข้างเคียง ได้แก่ -dontnote, -dontwarn,
assumenosideeffects และกฎที่ขึ้นต้นด้วย -keep ส่วนตัวเลือกอื่นๆ จะปรากฏได้เฉพาะใน
android_binary proguard_specs เพื่อให้แน่ใจว่าการผสานจะไม่ซ้ำซ้อน
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
java_runtime
ดูแหล่งที่มาของกฎjava_runtime(name, srcs, compatible_with, default_cds, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, hermetic_srcs, hermetic_static_libs, java, java_home, lib_ct_sym, lib_modules, output_licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, version, visibility)
ระบุการกำหนดค่าสำหรับรันไทม์ Java
ตัวอย่าง
java_runtime(
name = "jdk-9-ea+153",
srcs = glob(["jdk9-ea+153/**"]),
java_home = "jdk9-ea+153",
)
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
srcs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
default_cds
|
ป้ายกำกับ ค่าเริ่มต้นคือ java_runtime แบบปิด เมื่อเปิดใช้ hermetic
สำหรับเป้าหมาย java_binary ระบบจะแพ็กเกจ CDS เริ่มต้นของ java_runtime
ไว้ใน JAR การติดตั้งใช้งาน hermetic
|
hermetic_srcs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
hermetic_static_libs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
java
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
java_home
|
สตริง ค่าเริ่มต้นคือ srcs และ java ต้องเว้นว่างไว้
|
lib_ct_sym
|
ป้ายกำกับ ค่าเริ่มต้นคือ --release หากไม่ได้ระบุไว้และมีไฟล์เพียงไฟล์เดียวใน srcs ซึ่งมีเส้นทางที่ลงท้ายด้วย /lib/ct.sym ระบบจะใช้ไฟล์นั้น
|
lib_modules
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
output_licenses
|
รายการสตริง ค่าเริ่มต้นคือ |
version
|
จำนวนเต็ม ค่าเริ่มต้นคือ Runtime.version().feature()
|
java_single_jar
ดูแหล่งที่มาของกฎjava_single_jar(name, deps, compatible_with, compress, deploy_env, deploy_manifest_lines, deprecation, exclude_build_data, exec_compatible_with, exec_group_compatible_with, exec_properties, features, multi_release, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
compress
|
สตริง ค่าเริ่มต้นคือ |
deploy_env
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
deploy_manifest_lines
|
รายการสตริง ค่าเริ่มต้นคือ META-INF/manifest.mf
|
exclude_build_data
|
บูลีน ค่าเริ่มต้นคือ |
multi_release
|
บูลีน ค่าเริ่มต้นคือ |
java_toolchain
ดูแหล่งที่มาของกฎjava_toolchain(name, android_lint_data, android_lint_jvm_opts, android_lint_opts, android_lint_package_configuration, android_lint_runner, bootclasspath, compatible_javacopts, compatible_with, deprecation, deps_checker, exec_compatible_with, exec_group_compatible_with, exec_properties, features, forcibly_disable_header_compilation, genclass, header_compiler, header_compiler_builtin_processors, header_compiler_direct, ijar, jacocorunner, java_runtime, javabuilder, javabuilder_data, javabuilder_jvm_opts, javac_supports_multiplex_workers, javac_supports_worker_cancellation, javac_supports_worker_multiplex_sandboxing, javac_supports_workers, javacopts, jspecify_implicit_deps, jspecify_javacopts, jspecify_packages, jspecify_processor, jspecify_processor_class, jspecify_stubs, jvm_opts, licenses, misc, oneversion, oneversion_allowlist, oneversion_allowlist_for_tests, oneversion_whitelist, package_configuration, package_metadata, proguard_allowlister, reduced_classpath_incompatible_processors, restricted_to, singlejar, source_version, tags, target_compatible_with, target_version, testonly, timezone_data, toolchains, tools, turbine_data, turbine_jvm_opts, visibility, xlint)
ระบุการกำหนดค่าสำหรับคอมไพเลอร์ Java คุณเปลี่ยน Toolchain ที่จะใช้ได้ผ่านอาร์กิวเมนต์ --java_toolchain โดยปกติแล้วคุณไม่ควรเขียนกฎประเภทดังกล่าว เว้นแต่คุณต้องการปรับแต่งคอมไพเลอร์ Java
ตัวอย่าง
ตัวอย่างง่ายๆ มีดังนี้
java_toolchain(
name = "toolchain",
source_version = "7",
target_version = "7",
bootclasspath = ["//tools/jdk:bootclasspath"],
xlint = [ "classfile", "divzero", "empty", "options", "path" ],
javacopts = [ "-g" ],
javabuilder = ":JavaBuilder_deploy.jar",
)
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
android_lint_data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
android_lint_jvm_opts
|
รายการสตริง ค่าเริ่มต้นคือ |
android_lint_opts
|
รายการสตริง ค่าเริ่มต้นคือ |
android_lint_package_configuration
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
android_lint_runner
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
bootclasspath
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
compatible_javacopts
|
null; ค่าเริ่มต้นคือ |
deps_checker
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
forcibly_disable_header_compilation
|
บูลีน ค่าเริ่มต้นคือ |
genclass
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
header_compiler
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
header_compiler_builtin_processors
|
รายการสตริง ค่าเริ่มต้นคือ |
header_compiler_direct
|
ป้ายกำกับ ค่าเริ่มต้นคือ เครื่องมือนี้ไม่รองรับการประมวลผลคำอธิบายประกอบ |
ijar
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
jacocorunner
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
java_runtime
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
javabuilder
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
javabuilder_data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
javabuilder_jvm_opts
|
รายการสตริง ค่าเริ่มต้นคือ |
javac_supports_multiplex_workers
|
บูลีน ค่าเริ่มต้นคือ |
javac_supports_worker_cancellation
|
บูลีน ค่าเริ่มต้นคือ |
javac_supports_worker_multiplex_sandboxing
|
บูลีน ค่าเริ่มต้นคือ |
javac_supports_workers
|
บูลีน ค่าเริ่มต้นคือ |
javacopts
|
รายการสตริง ค่าเริ่มต้นคือ |
jspecify_implicit_deps
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
jspecify_javacopts
|
รายการสตริง ค่าเริ่มต้นคือ |
jspecify_packages
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
jspecify_processor
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
jspecify_processor_class
|
สตริง ค่าเริ่มต้นคือ |
jspecify_stubs
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
jvm_opts
|
รายการสตริง ค่าเริ่มต้นคือ |
misc
|
รายการสตริง ค่าเริ่มต้นคือ |
oneversion
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
oneversion_allowlist
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
oneversion_allowlist_for_tests
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
oneversion_whitelist
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
package_configuration
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
proguard_allowlister
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
reduced_classpath_incompatible_processors
|
รายการสตริง ค่าเริ่มต้นคือ |
singlejar
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
source_version
|
สตริง ค่าเริ่มต้นคือ |
target_version
|
สตริง ค่าเริ่มต้นคือ |
timezone_data
|
ป้ายกำกับ ค่าเริ่มต้นคือ |
tools
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
turbine_data
|
รายการป้ายกำกับ ค่าเริ่มต้นคือ |
turbine_jvm_opts
|
รายการสตริง ค่าเริ่มต้นคือ |
xlint
|
รายการสตริง ค่าเริ่มต้นคือ |