กฎ
- 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, distribs, env, exec_compatible_with, exec_properties, features, javacopts, jvm_flags, launcher, licenses, main_class, neverlink, output_licenses, plugins, resource_strip_prefix, restricted_to, runtime_deps, stamp, tags, target_compatible_with, testonly, toolchains, use_launcher, use_testrunner, visibility)
สร้างไฟล์เก็บถาวร Java ("ไฟล์ jar") รวมถึงสคริปต์เชลล์ที่ใช้ห่อหุ้มซึ่งมีชื่อเดียวกับกฎ
สคริปต์เชลล์ของ Wrapper ใช้ classpath ที่มีไฟล์ jar สำหรับแต่ละไลบรารีที่ไบนารีนั้นใช้อยู่ เมื่อเรียกใช้สคริปต์เชลล์ของ Wrapper ตัวแปรสภาพแวดล้อม JAVABIN
ที่ไม่ใช่ค่าว่างจะมีลำดับความสำคัญเหนือกว่าเวอร์ชันที่ระบุผ่าน Flag --java_runtime_version
ของ Bazel
สคริปต์ Wrapper ยอมรับ Flag ที่ไม่ซ้ำกันหลายรายการ โปรดดูรายการ Flag และตัวแปรสภาพแวดล้อมที่กำหนดค่าได้ซึ่ง Wrapper ยอมรับจาก
//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
เป้าหมายเอาต์พุตโดยนัย
name.jar
: ไฟล์เก็บถาวร Java ที่มีไฟล์คลาสและทรัพยากรอื่นๆ ที่สอดคล้องกับทรัพยากรที่ต้องพึ่งพาโดยตรงของไบนารีname-src.jar
: ไฟล์เก็บถาวรที่มีแหล่งที่มา ("source jar")name_deploy.jar
: ไฟล์เก็บถาวร Java ที่เหมาะสมสําหรับการติดตั้งใช้งาน (จะสร้างขึ้นก็ต่อเมื่อมีการขออย่างชัดแจ้งเท่านั้น)การสร้างเป้าหมาย
<name>_deploy.jar
สําหรับกฎจะสร้างไฟล์ jar แบบสําเร็จรูปที่มีไฟล์ Manifest ซึ่งช่วยให้สามารถเรียกใช้ได้โดยใช้คําสั่งjava -jar
หรือตัวเลือก--singlejar
ของสคริปต์ Wrapper เราขอแนะนำให้ใช้สคริปต์ Wrapper แทนjava -jar
เนื่องจากจะส่งFlag JVM และตัวเลือกในการโหลดไลบรารีแบบเนทีฟด้วยไฟล์ jar ที่ใช้ติดตั้งประกอบด้วยคลาสทั้งหมดที่ Class Loader จะพบซึ่งค้นหา classpath จากสคริปต์ Wrapper ของไบนารีตั้งแต่ต้นจนจบ รวมถึงมีไลบรารีเนทีฟที่จําเป็นสําหรับทรัพยากร Dependency ด้วย ระบบจะโหลดไฟล์เหล่านี้ลงใน JVM โดยอัตโนมัติเมื่อรันไทม์
หากเป้าหมายระบุแอตทริบิวต์ launcher ไฟล์ _deploy.jar จะเป็นไบนารีแบบเนทีฟแทนที่จะเป็นไฟล์ JAR ปกติ ซึ่งจะมีตัวเปิดใช้งานและไลบรารีแบบเนทีฟ (C++) ของกฎทั้งหมดที่ลิงก์เป็นไบนารีแบบคงที่ ระบบจะเพิ่มไบต์ของไฟล์ jar จริงต่อท้ายไบนารีเนทีฟนั้นเพื่อสร้างบล็อกไบนารีเดียวที่มีทั้งไฟล์ปฏิบัติการและโค้ด Java คุณสามารถเรียกใช้ไฟล์ jar ที่ได้โดยตรง เช่นเดียวกับการเรียกใช้ไฟล์ไบนารีเนทีฟ
name_deploy-src.jar
: ที่เก็บถาวรที่มีแหล่งที่มาซึ่งรวบรวมจาก Closure แบบทรานซิทีฟของเป้าหมาย ซึ่งจะจับคู่กับคลาสใน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 ที่ระบุ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยอัตโนมัติ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-opens= |
bootclasspath
|
ป้ายกํากับ ค่าเริ่มต้นคือ |
classpath_resources
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ
รายการทรัพยากรที่ต้องอยู่ที่รูทของต้นไม้ Java วัตถุประสงค์เดียวของแอตทริบิวต์นี้คือเพื่อรองรับไลบรารีของบุคคลที่สามที่กำหนดให้ต้องพบทรัพยากรของไลบรารีใน classpath เป็น |
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 ใดก็ได้ที่ใช้
Invocation API ของ Java เป็นค่าสำหรับแอตทริบิวต์นี้
โดยค่าเริ่มต้น Bazel จะใช้ตัวเปิด JDK ปกติ (bin/java หรือ java.exe) Flag โปรดทราบว่าระบบจะสร้างการพึ่งพาแบบเนทีฟ (C++, SWIG, JNI) แตกต่างกันไป ขึ้นอยู่กับว่าคุณใช้ Launcher ของ JDK หรือ Launcher อื่น
เมื่อใช้ Launcher อื่นที่ไม่ใช่ Launcher JDK เริ่มต้น รูปแบบของเอาต์พุต |
main_class
|
สตริง ค่าเริ่มต้นคือ main() เพื่อใช้เป็นจุดแรกเข้า
หากกฎใช้ตัวเลือกนี้ ก็ไม่จำเป็นต้องมีรายการ srcs=[...]
ดังนั้น คุณจึงสร้างไฟล์ปฏิบัติการจากไลบรารี Java ที่มีเมธอด main() อย่างน้อย 1 รายการอยู่แล้วได้โดยใช้แอตทริบิวต์นี้
ค่าของแอตทริบิวต์นี้คือชื่อคลาส ไม่ใช่ไฟล์ต้นฉบับ คลาสต้องพร้อมใช้งานที่รันไทม์ โดยอาจคอมไพล์โดยกฎนี้ (จาก |
neverlink
|
บูลีน ค่าเริ่มต้นคือ |
plugins
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ java_plugin ทั้งหมดที่ระบุในแอตทริบิวต์นี้ทุกครั้งที่สร้างกฎนี้ ไลบรารียังรับช่วงปลั๊กอินจาก Dependency ที่ใช้
exported_plugins ได้ด้วย ทรัพยากรที่ปลั๊กอินสร้างขึ้นจะรวมอยู่ในไฟล์ jar ของกฎนี้
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
runtime_deps
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ deps ทั่วไป รายการเหล่านี้จะปรากฏใน classpath รันไทม์ แต่จะต่างจาก deps ตรงที่ไม่ได้ปรากฏใน classpath ขณะคอมไพล์ รายการพึ่งพาที่จำเป็นเฉพาะที่รันไทม์ควรระบุไว้ที่นี่ เครื่องมือวิเคราะห์ Dependency ควรละเว้นเป้าหมายที่ปรากฏทั้งใน runtime_deps และ deps
|
stamp
|
จํานวนเต็ม ค่าเริ่มต้นคือ
ระบบจะไม่สร้างไฟล์ไบนารีที่มีตราประทับอีกครั้ง เว้นแต่จะมีการเปลี่ยนแปลงทรัพยากร Dependency |
use_launcher
|
บูลีน ค่าเริ่มต้นคือ หากตั้งค่าแอตทริบิวต์นี้เป็น "เท็จ" ระบบจะไม่สนใจแอตทริบิวต์launcher และ Flag |
use_testrunner
|
บูลีน ค่าเริ่มต้นคือ com.google.testing.junit.runner.BazelTestRunner ) เป็นจุดแรกเข้าหลักสำหรับโปรแกรม Java และระบุคลาสทดสอบให้กับโปรแกรมทดสอบเป็นค่าของพร็อพเพอร์ตี้ระบบ 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, distribs, exec_compatible_with, exec_properties, exports, features, jars, licenses, neverlink, 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 ที่ระบุ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยอัตโนมัติ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-opens= |
constraints
|
รายการสตริง ค่าเริ่มต้นคือ |
exports
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ |
jars
|
รายการป้ายกำกับ (ต้องระบุ) รายการไฟล์ JAR ที่ระบุให้กับเป้าหมาย Java ที่ใช้เป้าหมายนี้ |
neverlink
|
บูลีน ค่าเริ่มต้นคือ tools.jar สำหรับทุกอย่างที่ทำงานบน JDK มาตรฐาน
|
proguard_specs
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ android_binary ใดก็ได้โดยขึ้นอยู่กับคลังนี้
ไฟล์ที่รวมอยู่ที่นี่ต้องมีเฉพาะกฎแบบซ้ำซ้อน ซึ่งได้แก่ -dontnote, -dontwarn, assumenosideeffects และกฎที่ขึ้นต้นด้วย -keep ตัวเลือกอื่นๆ จะปรากฏใน proguard_specs ของ android_binary เท่านั้น เพื่อให้การผสานไม่ซ้ำกัน
|
runtime_deps
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ |
srcjar
|
ป้ายกํากับ ค่าเริ่มต้นคือ |
java_library
ดูแหล่งที่มาของกฎjava_library(name, deps, srcs, data, resources, add_exports, add_opens, bootclasspath, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exported_plugins, exports, features, javabuilder_jvm_flags, javacopts, licenses, neverlink, 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 ที่ระบุ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยอัตโนมัติ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-opens= |
bootclasspath
|
ป้ายกํากับ ค่าเริ่มต้นคือ |
exported_plugins
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ java_plugin (เช่น โปรแกรมประมวลผลคำอธิบายประกอบ) เพื่อส่งออกไปยังไลบรารีที่ขึ้นต่อกันกับไลบรารีนี้โดยตรง
รายการ |
exports
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ
การระบุกฎที่นี่จะทำให้กฎเหล่านั้นพร้อมใช้งานสำหรับกฎหลัก ราวกับว่ากฎหลักใช้กฎเหล่านี้อย่างชัดเจน แต่จะไม่ใช้กับ
สรุป: กฎ X สามารถเข้าถึงโค้ดใน Y ได้หากมีเส้นทางการพึ่งพาระหว่างกันซึ่งเริ่มต้นด้วยขอบ
สมมติว่า A ขึ้นอยู่กับ B และ B ขึ้นอยู่กับ C ในกรณีนี้ C เป็นสิ่งที่ต้องพึ่งพาแบบเปลี่ยนผ่านของ A ดังนั้นการเปลี่ยนแหล่งที่มาของ C และการสร้าง A อีกครั้งจะสร้างทุกอย่างขึ้นใหม่ได้อย่างถูกต้อง แต่ 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 ตัวเลือกอื่นๆ จะปรากฏใน proguard_specs ของ android_binary เท่านั้น เพื่อให้การผสานไม่ซ้ำกัน
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
runtime_deps
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ deps ทั่วไป รายการเหล่านี้จะปรากฏใน classpath รันไทม์ แต่จะต่างจาก deps ตรงที่ไม่ได้ปรากฏใน classpath ขณะคอมไพล์ รายการพึ่งพาที่จำเป็นเฉพาะที่รันไทม์ควรระบุไว้ที่นี่ เครื่องมือวิเคราะห์ Dependency ควรละเว้นเป้าหมายที่ปรากฏทั้งใน 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, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, javacopts, jvm_flags, launcher, licenses, local, main_class, neverlink, 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 การทดสอบคือไฟล์กลุ่มไบนารีรอบโค้ดทดสอบ ระบบจะเรียกใช้เมธอดหลักของโปรแกรมรันทดสอบแทนการคอมไพล์คลาสหลัก
เป้าหมายเอาต์พุตโดยนัย
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 ที่ระบุ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยอัตโนมัติ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-opens= |
bootclasspath
|
ป้ายกํากับ ค่าเริ่มต้นคือ |
classpath_resources
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ
รายการทรัพยากรที่ต้องอยู่ที่รูทของต้นไม้ Java วัตถุประสงค์เดียวของแอตทริบิวต์นี้คือเพื่อรองรับไลบรารีของบุคคลที่สามที่กำหนดให้ต้องพบทรัพยากรของไลบรารีใน classpath เป็น |
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 ใดก็ได้ที่ใช้
Invocation API ของ Java เป็นค่าสำหรับแอตทริบิวต์นี้
โดยค่าเริ่มต้น Bazel จะใช้ตัวเปิด JDK ปกติ (bin/java หรือ java.exe) Flag โปรดทราบว่าระบบจะสร้างการพึ่งพาแบบเนทีฟ (C++, SWIG, JNI) แตกต่างกันไป ขึ้นอยู่กับว่าคุณใช้ Launcher ของ JDK หรือ Launcher อื่น
เมื่อใช้ Launcher อื่นที่ไม่ใช่ Launcher JDK เริ่มต้น รูปแบบของเอาต์พุต |
main_class
|
สตริง ค่าเริ่มต้นคือ main() เพื่อใช้เป็นจุดแรกเข้า
หากกฎใช้ตัวเลือกนี้ ก็ไม่จำเป็นต้องมีรายการ srcs=[...]
ดังนั้น คุณจึงสร้างไฟล์ปฏิบัติการจากไลบรารี Java ที่มีเมธอด main() อย่างน้อย 1 รายการอยู่แล้วได้โดยใช้แอตทริบิวต์นี้
ค่าของแอตทริบิวต์นี้คือชื่อคลาส ไม่ใช่ไฟล์ต้นฉบับ คลาสต้องพร้อมใช้งานที่รันไทม์ โดยอาจคอมไพล์โดยกฎนี้ (จาก |
neverlink
|
บูลีน ค่าเริ่มต้นคือ |
plugins
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ java_plugin ทั้งหมดที่ระบุในแอตทริบิวต์นี้ทุกครั้งที่สร้างกฎนี้ ไลบรารียังรับช่วงปลั๊กอินจาก Dependency ที่ใช้
exported_plugins ได้ด้วย ทรัพยากรที่ปลั๊กอินสร้างขึ้นจะรวมอยู่ในไฟล์ jar ของกฎนี้
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
runtime_deps
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ deps ทั่วไป รายการเหล่านี้จะปรากฏใน classpath รันไทม์ แต่จะต่างจาก deps ตรงที่ไม่ได้ปรากฏใน classpath ขณะคอมไพล์ รายการพึ่งพาที่จำเป็นเฉพาะที่รันไทม์ควรระบุไว้ที่นี่ เครื่องมือวิเคราะห์ Dependency ควรละเว้นเป้าหมายที่ปรากฏทั้งใน runtime_deps และ deps
|
stamp
|
จํานวนเต็ม ค่าเริ่มต้นคือ
ระบบจะไม่สร้างไฟล์ไบนารีที่มีตราประทับอีกครั้ง เว้นแต่จะมีการเปลี่ยนแปลงทรัพยากร Dependency |
test_class
|
สตริง ค่าเริ่มต้นคือ
โดยค่าเริ่มต้น หากไม่ได้กําหนดอาร์กิวเมนต์นี้ ระบบจะใช้โหมดเดิมและใช้อาร์กิวเมนต์ทดสอบแทน ตั้งค่า Flag
แอตทริบิวต์นี้ระบุชื่อคลาส Java ที่การทดสอบนี้จะเรียกใช้ คุณไม่จำเป็นต้องตั้งค่านี้บ่อยนัก หากไม่ระบุอาร์กิวเมนต์นี้ ระบบจะอนุมานโดยใช้
สำหรับ JUnit3 คลาสทดสอบต้องเป็นคลาสย่อยของ
แอตทริบิวต์นี้ช่วยให้กฎ |
use_launcher
|
บูลีน ค่าเริ่มต้นคือ หากตั้งค่าแอตทริบิวต์นี้เป็น "เท็จ" ระบบจะไม่สนใจแอตทริบิวต์launcher และ Flag |
use_testrunner
|
บูลีน ค่าเริ่มต้นคือ com.google.testing.junit.runner.BazelTestRunner ) เป็นจุดแรกเข้าหลักสำหรับโปรแกรม Java และระบุคลาสทดสอบให้กับโปรแกรมทดสอบเป็นค่าของพร็อพเพอร์ตี้ระบบ bazel.test_suite
คุณใช้ตัวเลือกนี้เพื่อลบล้างลักษณะการทํางานเริ่มต้นได้ ซึ่งก็คือการใช้โปรแกรมรันทดสอบสําหรับกฎ java_test และไม่ได้ใช้สําหรับกฎ java_binary คุณไม่น่าจะต้องดำเนินการนี้ การใช้งานอย่างหนึ่งคือสำหรับAllTest
กฎที่เรียกใช้โดยกฎอื่น (เช่น เพื่อตั้งค่าฐานข้อมูลก่อนทำการทดสอบ) คุณต้องประกาศAllTest
กฎเป็น java_binary แต่ควรใช้โปรแกรมรันทดสอบเป็นจุดแรกเข้าหลัก
คุณลบล้างชื่อคลาสโปรแกรมรันทดสอบได้ด้วยแอตทริบิวต์ main_class
|
java_package_configuration
ดูแหล่งที่มาของกฎjava_package_configuration(name, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, javacopts, output_licenses, 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, distribs, exec_compatible_with, exec_properties, features, generates_api, javabuilder_jvm_flags, javacopts, licenses, neverlink, output_licenses, 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
อาร์กิวเมนต์
Attributes | |
---|---|
name |
ชื่อ ต้องระบุ ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ deps ที่หัวข้อแอตทริบิวต์ทั่วไปที่กฎการสร้างส่วนใหญ่กำหนด
Jar ที่สร้างขึ้นโดยกฎ
ในทางตรงกันข้าม เป้าหมายในแอตทริบิวต์ |
srcs
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ
คอมไพล์ไฟล์ต้นทางประเภท
ระบบจะแตกไฟล์ต้นฉบับประเภท
กฎ: หากกฎ (โดยทั่วไปคือ
ระบบจะถือว่าไฟล์ต้นทางประเภท ระบบจะไม่สนใจไฟล์อื่นๆ ทั้งหมด ตราบใดที่มีไฟล์อย่างน้อย 1 ไฟล์ในประเภทไฟล์ที่อธิบายไว้ข้างต้น มิฉะนั้น ระบบจะแสดงข้อผิดพลาด
คุณต้องระบุอาร์กิวเมนต์นี้เกือบทุกครั้ง เว้นแต่คุณจะระบุอาร์กิวเมนต์ |
data
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ data ที่หัวข้อแอตทริบิวต์ทั่วไปที่กฎการสร้างส่วนใหญ่กำหนด
เมื่อสร้าง |
resources
|
รายการป้ายกํากับ ค่าเริ่มต้นคือ ทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น
หากระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ jar พร้อมกับไฟล์ |
add_exports
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ package ที่ระบุ
ซึ่งสอดคล้องกับ Flag javac และ JVM --add-exports= |
add_opens
|
รายการสตริง ค่าเริ่มต้นคือ module หรือ
package ที่ระบุโดยอัตโนมัติ
ซึ่งสอดคล้องกับ Flag 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 ตัวเลือกอื่นๆ จะปรากฏใน proguard_specs ของ android_binary เท่านั้น เพื่อให้การผสานไม่ซ้ำกัน
|
resource_strip_prefix
|
สตริง ค่าเริ่มต้นคือ
หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์ |
java_runtime
ดูแหล่งที่มาของกฎjava_runtime(name, srcs, compatible_with, default_cds, deprecation, distribs, exec_compatible_with, exec_properties, features, hermetic_srcs, hermetic_static_libs, java, java_home, lib_ct_sym, lib_modules, output_licenses, 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 แบบปิด เมื่อเปิดใช้การแยกส่วนสำหรับเป้าหมาย java_binary ระบบจะแพ็กเกจ CDS เริ่มต้นของ java_runtime ใน JAR การติดตั้งแบบแยกส่วน
|
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, distribs, exclude_build_data, exec_compatible_with, exec_properties, features, multi_release, 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, distribs, exec_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, 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 คุณเปลี่ยนเครื่องมือทางเทคนิคที่จะใช้ผ่านอาร์กิวเมนต์ --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
|
รายการสตริง ค่าเริ่มต้นคือ |