กฎ
- 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_binary cc_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: ที่เก็บถาวร 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
         | 
        
                     รายการป้ายกำกับ ค่าเริ่มต้นคือ  
            ระบบจะคอมไพล์ไฟล์แหล่งข้อมูลประเภท  
            ระบบจะคลายแพ็กและคอมไพล์ไฟล์ต้นฉบับประเภท  
            กฎ: หากกฎ (โดยปกติคือ  
            โดยปกติแล้วคุณจะต้องระบุอาร์กิวเมนต์นี้เสมอ ยกเว้นในกรณีที่แอตทริบิวต์
              | 
      
          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_binary cc_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
         | 
        
                     รายการสตริง ค่าเริ่มต้นคือ   |