กฎ
- java_binary
- java_import
- java_library
- java_lite_proto_library
- java_proto_library
- java_test
- java_package_configuration
- java_plugin
- java_runtime
- java_toolchain
java_binary
ดูแหล่งที่มาของกฎjava_binary(name, deps, srcs, data, resources, args, 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, output_licenses, plugins, resource_jars, 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 ยอมรับแฟล็กที่ไม่ซ้ำกันหลายรายการ โปรดดู
  //src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
  เพื่อดูรายการค่าสถานะและตัวแปรสภาพแวดล้อมที่กำหนดค่าได้ซึ่ง Wrapper ยอมรับ
เป้าหมายเอาต์พุตโดยนัย
- name.jar: ที่เก็บถาวรของ Java ซึ่งมีไฟล์คลาสและทรัพยากรอื่นๆ ที่สอดคล้องกับทรัพยากร Dependency โดยตรงของไบนารี
- 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: ที่เก็บถาวรที่มีแหล่งที่มา ที่รวบรวมจาก Closure แบบทรานซิทีฟของเป้าหมาย ซึ่งจะตรงกับคลาสใน- deploy.jarยกเว้นในกรณีที่ JAR ไม่มี JAR แหล่งที่มาที่ตรงกัน
  ไม่อนุญาตให้ใช้แอตทริบิวต์ 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 | ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ แนวทางปฏิบัติที่ดีคือการใช้ชื่อของไฟล์ต้นฉบับซึ่งเป็นจุดแรกเข้าหลักของ แอปพลิเคชัน (ไม่รวมนามสกุล) เช่น หากจุดแรกเข้าชื่อ Main.javaชื่อของคุณอาจเป็นMain | 
| deps | รายการป้ายกำกับ ค่าเริ่มต้นคือ  depsที่
          แอตทริบิวต์ทั่วไปที่กำหนดโดย
          กฎการสร้างส่วนใหญ่ | 
| srcs | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            ระบบจะคอมไพล์ไฟล์แหล่งข้อมูลประเภท  
            ระบบจะคลายแพ็กและคอมไพล์ไฟล์ต้นฉบับประเภท  
            กฎ: หากกฎ (โดยปกติคือ  
            โดยปกติแล้วคุณจะต้องระบุอาร์กิวเมนต์นี้เสมอ ยกเว้นในกรณีที่แอตทริบิวต์
             | 
| resources | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            หากระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับ
             โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น | 
| 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_binarycc_binaryที่
          ใช้
          
          Java Invocation API สามารถระบุเป็นค่าสำหรับแอตทริบิวต์นี้ได้โดยค่าเริ่มต้น Bazel จะใช้ตัวเรียกใช้ JDK ปกติ (bin/java หรือ java.exe) แฟล็ก  โปรดทราบว่าระบบจะสร้างการอ้างอิงดั้งเดิม (C++, SWIG, JNI) ของคุณแตกต่างกัน โดยขึ้นอยู่กับว่าคุณใช้ตัวเรียกใช้ JDK หรือตัวเรียกใช้อื่น 
 เมื่อใช้ตัวเรียกใช้ที่ไม่ใช่ตัวเรียกใช้ JDK เริ่มต้น รูปแบบของ | 
| main_class | สตริง ค่าเริ่มต้นคือ  main()เมธอดที่จะใช้เป็นจุดแรกเข้า
          หากกฎใช้ตัวเลือกนี้ ก็ไม่จำเป็นต้องมีsrcs=[...]รายการ
          ดังนั้น คุณจึงใช้แอตทริบิวต์นี้เพื่อสร้างไฟล์ที่เรียกใช้งานได้จากไลบรารี Java ที่มีmain()เมธอดอย่างน้อย 1 รายการอยู่แล้วได้
            ค่าของแอตทริบิวต์นี้คือชื่อคลาส ไม่ใช่ไฟล์ต้นฉบับ คลาสต้อง
            พร้อมใช้งานที่รันไทม์: อาจคอมไพล์โดยกฎนี้ (จาก  | 
| plugins | รายการป้ายกำกับ ค่าเริ่มต้นคือ  java_pluginทุกรายการที่ระบุในแอตทริบิวต์นี้จะทำงานทุกครั้งที่มีการสร้างกฎนี้
           ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้exported_pluginsด้วย ระบบจะรวมทรัพยากร
          ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้ | 
| resource_jars | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| 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 และระบุคลาสการทดสอบ
          ให้กับโปรแกรมเรียกใช้การทดสอบเป็นค่าของbazel.test_suiteพร็อพเพอร์ตี้ของระบบ
          คุณสามารถใช้ตัวเลือกนี้เพื่อลบล้างลักษณะการทำงานเริ่มต้น
          ซึ่งคือการใช้โปรแกรมเรียกใช้การทดสอบสำหรับกฎjava_testและไม่ใช้สำหรับกฎjava_binaryคุณไม่น่าจะต้องการทำเช่นนี้
            กรณีการใช้งานหนึ่งคือสำหรับAllTestกฎที่เรียกใช้โดยกฎอื่น (เช่น เพื่อตั้งค่าฐานข้อมูล
          ก่อนเรียกใช้การทดสอบ)  ต้องประกาศAllTestกฎเป็นjava_binaryแต่ควร
          ยังคงใช้โปรแกรมเรียกใช้การทดสอบเป็นจุดแรกเข้าหลัก
          คุณลบล้างชื่อของคลาสโปรแกรมเรียกใช้การทดสอบได้ด้วยแอตทริบิวต์main_class | 
java_import
ดูแหล่งที่มาของกฎjava_import(name, deps, data, 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, 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 | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| constraints | รายการสตริง กำหนดค่าไม่ได้ ค่าเริ่มต้นคือ  | 
| exports | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| jars | รายการป้ายกำกับ (ต้องระบุ)รายการไฟล์ JAR ที่ระบุให้กับเป้าหมาย Java ที่ขึ้นอยู่กับเป้าหมายนี้ | 
| neverlink | บูลีน ค่าเริ่มต้นคือ  tools.jarสำหรับทุกอย่างที่ทำงานบน
        JDK มาตรฐาน | 
| proguard_specs | รายการป้ายกำกับ ค่าเริ่มต้นคือ  android_binaryใดก็ตามโดยขึ้นอยู่กับคลังนี้
        ไฟล์ที่รวมไว้ที่นี่ต้องมีเฉพาะกฎที่ไม่มีผลข้างเคียง ได้แก่ -dontnote, -dontwarn,
        assumenosideeffects และกฎที่ขึ้นต้นด้วย -keep ตัวเลือกอื่นๆ จะปรากฏได้เฉพาะในandroid_binaryproguard_specs เพื่อให้แน่ใจว่าการผสานจะไม่ซ้ำซ้อน | 
| runtime_deps | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| srcjar | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
java_library
ดูแหล่งที่มาของกฎjava_library(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exported_plugins, exports, features, javacopts, licenses, neverlink, plugins, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, tags, target_compatible_with, testonly, visibility)
กฎนี้จะรวบรวมและลิงก์แหล่งข้อมูลเป็นไฟล์ .jar
เป้าหมายเอาต์พุตโดยนัย
- libname.jar: ที่เก็บถาวรของ Java ที่มีไฟล์คลาส
- libname-src.jar: ที่เก็บถาวรที่มีแหล่งที่มา ("source jar")
อาร์กิวเมนต์
| Attributes | |
|---|---|
| name | ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ | 
| deps | รายการป้ายกำกับ ค่าเริ่มต้นคือ  depsที่
        แอตทริบิวต์ทั่วไปที่กำหนดโดย
        กฎการสร้างส่วนใหญ่
          ไฟล์ JAR ที่สร้างโดยกฎ  
          ในทางตรงกันข้าม เป้าหมายในแอตทริบิวต์  | 
| srcs | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            ระบบจะคอมไพล์ไฟล์แหล่งข้อมูลประเภท  
            ระบบจะคลายแพ็กและคอมไพล์ไฟล์ต้นฉบับประเภท  
            กฎ: หากกฎ (โดยปกติคือ  
            โดยปกติแล้วคุณจะต้องระบุอาร์กิวเมนต์นี้เสมอ ยกเว้นในกรณีที่แอตทริบิวต์
             | 
| data | รายการป้ายกำกับ ค่าเริ่มต้นคือ  dataที่
        แอตทริบิวต์ทั่วไปที่กำหนดโดย
        กฎการสร้างส่วนใหญ่
          เมื่อสร้าง  | 
| resources | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            หากระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับ
             โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น | 
| 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 ใน  | 
| javacopts | รายการสตริง ค่าเริ่มต้นคือ  ระบบจะส่งตัวเลือกคอมไพเลอร์เหล่านี้ไปยัง javac หลังจากตัวเลือกคอมไพเลอร์ส่วนกลาง | 
| neverlink | บูลีน ค่าเริ่มต้นคือ  tools.jarสำหรับทุกอย่าง
        ที่ทำงานใน JDK มาตรฐาน
          โปรดทราบว่า  หากไลบรารีรันไทม์แตกต่างจากไลบรารีการคอมไพล์ คุณต้องตรวจสอบว่าไลบรารีรันไทม์ แตกต่างกันเฉพาะในตำแหน่งที่ JLS ห้ามไม่ให้คอมไพเลอร์อินไลน์ (และต้องเป็นเช่นนี้สำหรับ JLS ทุกเวอร์ชันในอนาคต) | 
| plugins | รายการป้ายกำกับ ค่าเริ่มต้นคือ  java_pluginทุกรายการที่ระบุในแอตทริบิวต์นี้จะทำงานทุกครั้งที่มีการสร้างกฎนี้
           ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้exported_pluginsด้วย ระบบจะรวมทรัพยากร
          ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้ | 
| proguard_specs | รายการป้ายกำกับ ค่าเริ่มต้นคือ  android_binaryใดก็ตามโดยขึ้นอยู่กับคลังนี้
        ไฟล์ที่รวมไว้ที่นี่ต้องมีเฉพาะกฎที่ไม่มีผลข้างเคียง ได้แก่ -dontnote, -dontwarn,
        assumenosideeffects และกฎที่ขึ้นต้นด้วย -keep ตัวเลือกอื่นๆ จะปรากฏได้เฉพาะในandroid_binaryproguard_specs เพื่อให้แน่ใจว่าการผสานจะไม่ซ้ำซ้อน | 
| resource_jars | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| resource_strip_prefix | สตริง ค่าเริ่มต้นคือ  
            หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์  | 
| runtime_deps | รายการป้ายกำกับ ค่าเริ่มต้นคือ  depsทั่วไป ไฟล์เหล่านี้จะปรากฏใน classpath ของรันไทม์ แต่จะไม่ปรากฏใน classpath ของเวลาคอมไพล์ การอ้างอิงที่จำเป็นเฉพาะในเวลาเรียกใช้ควร
          แสดงไว้ที่นี่ เครื่องมือวิเคราะห์การขึ้นต่อกันควรละเว้นเป้าหมายที่ปรากฏทั้งในruntime_depsและdeps | 
java_lite_proto_library
ดูแหล่งที่มาของกฎjava_lite_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_lite_proto_library สร้างโค้ด Java จากไฟล์ .proto
deps ต้องชี้ไปยังกฎ proto_library
ตัวอย่าง
java_library(
    name = "lib",
    deps = [":foo"],
)
java_lite_proto_library(
    name = "foo",
    deps = [":bar"],
)
proto_library(
    name = "bar",
)
อาร์กิวเมนต์
| Attributes | |
|---|---|
| name | ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ | 
| deps | รายการป้ายกำกับ ค่าเริ่มต้นคือ  proto_libraryเพื่อสร้างโค้ด Java | 
java_proto_library
ดูแหล่งที่มาของกฎjava_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_proto_library สร้างโค้ด Java จากไฟล์ .proto
deps ต้องชี้ไปยังกฎ proto_library
ตัวอย่าง
java_library(
    name = "lib",
    deps = [":foo_java_proto"],
)
java_proto_library(
    name = "foo_java_proto",
    deps = [":foo_proto"],
)
proto_library(
    name = "foo_proto",
)
อาร์กิวเมนต์
| Attributes | |
|---|---|
| name | ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ | 
| deps | รายการป้ายกำกับ ค่าเริ่มต้นคือ  proto_libraryเพื่อสร้างโค้ด Java | 
java_test
ดูแหล่งที่มาของกฎjava_test(name, deps, srcs, data, resources, args, 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, plugins, resource_jars, 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: ที่เก็บถาวร Java
- name_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 | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            ระบบจะคอมไพล์ไฟล์แหล่งข้อมูลประเภท  
            ระบบจะคลายแพ็กและคอมไพล์ไฟล์ต้นฉบับประเภท  
            กฎ: หากกฎ (โดยปกติคือ  
            โดยปกติแล้วคุณจะต้องระบุอาร์กิวเมนต์นี้เสมอ ยกเว้นในกรณีที่แอตทริบิวต์
             | 
| resources | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            หากระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับ
             โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น | 
| 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_binarycc_binaryที่
          ใช้
          
          Java Invocation API สามารถระบุเป็นค่าสำหรับแอตทริบิวต์นี้ได้โดยค่าเริ่มต้น Bazel จะใช้ตัวเรียกใช้ JDK ปกติ (bin/java หรือ java.exe) แฟล็ก  โปรดทราบว่าระบบจะสร้างการอ้างอิงดั้งเดิม (C++, SWIG, JNI) ของคุณแตกต่างกัน โดยขึ้นอยู่กับว่าคุณใช้ตัวเรียกใช้ JDK หรือตัวเรียกใช้อื่น 
 เมื่อใช้ตัวเรียกใช้ที่ไม่ใช่ตัวเรียกใช้ JDK เริ่มต้น รูปแบบของ | 
| main_class | สตริง ค่าเริ่มต้นคือ  main()เมธอดที่จะใช้เป็นจุดแรกเข้า
          หากกฎใช้ตัวเลือกนี้ ก็ไม่จำเป็นต้องมีsrcs=[...]รายการ
          ดังนั้น คุณจึงใช้แอตทริบิวต์นี้เพื่อสร้างไฟล์ที่เรียกใช้งานได้จากไลบรารี Java ที่มีmain()เมธอดอย่างน้อย 1 รายการอยู่แล้วได้
            ค่าของแอตทริบิวต์นี้คือชื่อคลาส ไม่ใช่ไฟล์ต้นฉบับ คลาสต้อง
            พร้อมใช้งานที่รันไทม์: อาจคอมไพล์โดยกฎนี้ (จาก  | 
| plugins | รายการป้ายกำกับ ค่าเริ่มต้นคือ  java_pluginทุกรายการที่ระบุในแอตทริบิวต์นี้จะทำงานทุกครั้งที่มีการสร้างกฎนี้
           ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้exported_pluginsด้วย ระบบจะรวมทรัพยากร
          ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้ | 
| resource_jars | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| 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 และระบุคลาสการทดสอบ
          ให้กับโปรแกรมเรียกใช้การทดสอบเป็นค่าของ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, features, javacopts, licenses, packages, restricted_to, tags, target_compatible_with, testonly, 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 | รายการสตริง ค่าเริ่มต้นคือ  | 
| packages | รายการป้ายกำกับ ค่าเริ่มต้นคือ  package_groupที่ควรใช้การกำหนดค่า | 
java_plugin
ดูแหล่งที่มาของกฎjava_plugin(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, generates_api, javacopts, licenses, neverlink, output_licenses, plugins, processor_class, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, tags, target_compatible_with, testonly, 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 | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            ระบบจะคอมไพล์ไฟล์แหล่งข้อมูลประเภท  
            ระบบจะคลายแพ็กและคอมไพล์ไฟล์ต้นฉบับประเภท  
            กฎ: หากกฎ (โดยปกติคือ  
            โดยปกติแล้วคุณจะต้องระบุอาร์กิวเมนต์นี้เสมอ ยกเว้นในกรณีที่แอตทริบิวต์
             | 
| data | รายการป้ายกำกับ ค่าเริ่มต้นคือ  dataที่
        แอตทริบิวต์ทั่วไปที่กำหนดโดย
        กฎการสร้างส่วนใหญ่
          เมื่อสร้าง  | 
| resources | รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            หากระบุทรัพยากร ระบบจะรวมทรัพยากรไว้ในไฟล์ JAR พร้อมกับ
             โดยทรัพยากรอาจเป็นไฟล์ต้นฉบับหรือไฟล์ที่สร้างขึ้น | 
| generates_api | บูลีน ค่าเริ่มต้นคือ  หากกฎใช้ตัวประมวลผลคำอธิบายประกอบที่สร้าง API กฎอื่นๆ ที่ขึ้นอยู่กับกฎนั้นจะอ้างอิงโค้ดที่สร้างขึ้นได้ก็ต่อเมื่อมีการกำหนดเวลาการดำเนินการ คอมไพล์หลังจากกฎที่สร้าง แอตทริบิวต์นี้ จะสั่งให้ Bazel กำหนดข้อจำกัดในการจัดกำหนดการเมื่อ เปิดใช้ --java_header_compilation คำเตือน: แอตทริบิวต์นี้ส่งผลต่อประสิทธิภาพการสร้าง ใช้เฉพาะในกรณีที่จำเป็นเท่านั้น | 
| javacopts | รายการสตริง ค่าเริ่มต้นคือ  ระบบจะส่งตัวเลือกคอมไพเลอร์เหล่านี้ไปยัง javac หลังจากตัวเลือกคอมไพเลอร์ส่วนกลาง | 
| neverlink | บูลีน ค่าเริ่มต้นคือ  tools.jarสำหรับทุกอย่าง
        ที่ทำงานใน JDK มาตรฐาน
          โปรดทราบว่า  หากไลบรารีรันไทม์แตกต่างจากไลบรารีการคอมไพล์ คุณต้องตรวจสอบว่าไลบรารีรันไทม์ แตกต่างกันเฉพาะในตำแหน่งที่ JLS ห้ามไม่ให้คอมไพเลอร์อินไลน์ (และต้องเป็นเช่นนี้สำหรับ JLS ทุกเวอร์ชันในอนาคต) | 
| output_licenses | ประเภทใบอนุญาต ค่าเริ่มต้นคือ  common attributes
         | 
| plugins | รายการป้ายกำกับ ค่าเริ่มต้นคือ  java_pluginทุกรายการที่ระบุในแอตทริบิวต์นี้จะทำงานทุกครั้งที่มีการสร้างกฎนี้
           ไลบรารีอาจรับช่วงปลั๊กอินจากทรัพยากร Dependency ที่ใช้exported_pluginsด้วย ระบบจะรวมทรัพยากร
          ที่ปลั๊กอินสร้างขึ้นไว้ในไฟล์ JAR ที่ได้จากกฎนี้ | 
| processor_class | สตริง ค่าเริ่มต้นคือ  | 
| proguard_specs | รายการป้ายกำกับ ค่าเริ่มต้นคือ  android_binaryใดก็ตามโดยขึ้นอยู่กับคลังนี้
        ไฟล์ที่รวมไว้ที่นี่ต้องมีเฉพาะกฎที่ไม่มีผลข้างเคียง ได้แก่ -dontnote, -dontwarn,
        assumenosideeffects และกฎที่ขึ้นต้นด้วย -keep ตัวเลือกอื่นๆ จะปรากฏได้เฉพาะในandroid_binaryproguard_specs เพื่อให้แน่ใจว่าการผสานจะไม่ซ้ำซ้อน | 
| resource_jars | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| resource_strip_prefix | สตริง ค่าเริ่มต้นคือ  
            หากระบุไว้ ระบบจะนำคำนำหน้าเส้นทางนี้ออกจากทุกไฟล์ในแอตทริบิวต์  | 
java_runtime
ดูแหล่งที่มาของกฎjava_runtime(name, srcs, compatible_with, default_cds, deprecation, distribs, features, hermetic_srcs, java, java_home, lib_ct_sym, lib_modules, licenses, restricted_to, tags, target_compatible_with, testonly, 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 ของตัวเองโดยการระบุแอตทริบิวต์classlistระบบจะแพ็ก CDS เริ่มต้นjava_runtimeไว้ใน JAR การติดตั้งใช้งาน hermetic | 
| hermetic_srcs | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| java | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| java_home | สตริง ค่าเริ่มต้นคือ  srcsและjavaต้องเว้นว่างไว้ | 
| lib_ct_sym | ป้ายกำกับ ค่าเริ่มต้นคือ  --releaseหากไม่ได้ระบุและมีไฟล์เพียงไฟล์เดียวในsrcsซึ่งมีเส้นทางที่ลงท้ายด้วย/lib/ct.symระบบจะใช้ไฟล์นั้น | 
| lib_modules | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| version | จำนวนเต็ม ค่าเริ่มต้นคือ  Runtime.version().feature() | 
java_toolchain
ดูแหล่งที่มาของกฎjava_toolchain(name, android_lint_data, android_lint_jvm_opts, android_lint_opts, android_lint_package_configuration, android_lint_runner, bootclasspath, compatible_with, deprecation, deps_checker, distribs, features, forcibly_disable_header_compilation, genclass, header_compiler, header_compiler_direct, ijar, jacocorunner, java_runtime, javabuilder, javabuilder_data, javabuilder_jvm_opts, javac_supports_multiplex_workers, javac_supports_worker_multiplex_sandboxing, javac_supports_workers, javacopts, jvm_opts, licenses, oneversion, oneversion_allowlist_for_tests, oneversion_whitelist, package_configuration, proguard_allowlister, resourcejar, restricted_to, singlejar, source_version, tags, target_compatible_with, target_version, testonly, timezone_data, 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 | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| deps_checker | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| forcibly_disable_header_compilation | บูลีน ค่าเริ่มต้นคือ  | 
| genclass | รายการป้ายกำกับ (ต้องระบุ)ป้ายกำกับของไฟล์ JAR ที่ใช้ในการติดตั้งใช้งาน GenClass | 
| header_compiler | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| header_compiler_direct | รายการป้ายกำกับ ค่าเริ่มต้นคือ  เครื่องมือนี้ไม่รองรับการประมวลผลคำอธิบายประกอบ | 
| ijar | รายการป้ายกำกับ (ต้องระบุ)ป้ายกำกับของไฟล์ที่เรียกใช้งานได้ ijar | 
| jacocorunner | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| java_runtime | ป้ายกำกับ (ต้องระบุ)java_runtime ที่จะใช้กับเครื่องมือนี้ โดยมีค่าเริ่มต้นเป็น java_runtime ในการกำหนดค่าการดำเนินการ | 
| javabuilder | รายการป้ายกำกับ (ต้องระบุ)ป้ายกำกับของไฟล์ JAR ที่ใช้ในการติดตั้งใช้งาน JavaBuilder | 
| javabuilder_data | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| javabuilder_jvm_opts | รายการสตริง ค่าเริ่มต้นคือ  | 
| javac_supports_multiplex_workers | บูลีน ค่าเริ่มต้นคือ  | 
| javac_supports_worker_multiplex_sandboxing | บูลีน ค่าเริ่มต้นคือ  | 
| javac_supports_workers | บูลีน ค่าเริ่มต้นคือ  | 
| javacopts | รายการสตริง ค่าเริ่มต้นคือ  | 
| jvm_opts | รายการสตริง ค่าเริ่มต้นคือ  | 
| oneversion | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| oneversion_allowlist_for_tests | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| oneversion_whitelist | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| package_configuration | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| proguard_allowlister | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| resourcejar | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| singlejar | รายการป้ายกำกับ (ต้องระบุ)ป้ายกำกับของไฟล์ JAR ที่ใช้ในการติดตั้งใช้งาน SingleJar | 
| source_version | สตริง ค่าเริ่มต้นคือ  | 
| target_version | สตริง ค่าเริ่มต้นคือ  | 
| timezone_data | ป้ายกำกับ ค่าเริ่มต้นคือ  | 
| tools | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| turbine_data | รายการป้ายกำกับ ค่าเริ่มต้นคือ  | 
| turbine_jvm_opts | รายการสตริง ค่าเริ่มต้นคือ  | 
| xlint | รายการสตริง ค่าเริ่มต้นคือ  |