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