नियम
- 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 फ़ाइल") बनाता है. साथ ही, नियम के नाम वाली रैपर शेल स्क्रिप्ट भी बनाता है.
  रैपर शेल स्क्रिप्ट, क्लासपाथ का इस्तेमाल करती है. इसमें अन्य चीज़ों के साथ-साथ, हर उस लाइब्रेरी के लिए जार फ़ाइल शामिल होती है जिस पर बाइनरी निर्भर करती है. रैपर शेल स्क्रिप्ट चलाते समय, खाली नहीं है JAVABIN एनवायरमेंट वैरिएबल को Bazel के --java_runtime_version फ़्लैग के ज़रिए तय किए गए वर्शन के मुकाबले प्राथमिकता दी जाएगी.
  रैपर स्क्रिप्ट, कई यूनीक फ़्लैग स्वीकार करती है. रैपर के साथ काम करने वाले कॉन्फ़िगर किए जा सकने वाले फ़्लैग और एनवायरमेंट वैरिएबल की सूची देखने के लिए, //src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt पर जाएं.
इंप्लिसिट आउटपुट टारगेट
- name.jar: यह एक Java संग्रह है. इसमें क्लास फ़ाइलें और अन्य संसाधन होते हैं. ये संसाधन, बाइनरी की सीधी डिपेंडेंसी से जुड़े होते हैं.
- name-src.jar: यह एक ऐसा संग्रह है जिसमें सोर्स ("सोर्स जार") शामिल होते हैं.
- name_deploy.jar: डिप्लॉयमेंट के लिए सही Java संग्रह (सिर्फ़ तब बनाया जाता है, जब इसके लिए साफ़ तौर पर अनुरोध किया गया हो).- अपने नियम के लिए - <name>_deploy.jarटारगेट बनाने से, मेनिफ़ेस्ट वाली एक जार फ़ाइल बनती है. इससे- java -jarकमांड या रैपर स्क्रिप्ट के- --singlejarविकल्प का इस्तेमाल करके, फ़ाइल को चलाया जा सकता है.- java -jarके बजाय रैपर स्क्रिप्ट का इस्तेमाल करना बेहतर होता है, क्योंकि यह JVM फ़्लैग और नेटिव लाइब्रेरी लोड करने के विकल्प भी पास करती है.- डिप्लॉय जार में वे सभी क्लास शामिल होती हैं जिन्हें क्लासलोडर ढूंढ सकता है. यह क्लासलोडर, बाइनरी की रैपर स्क्रिप्ट में क्लासपाथ को शुरू से आखिर तक खोजता है. इसमें डिपेंडेंसी के लिए ज़रूरी नेटिव लाइब्रेरी भी शामिल होती हैं. ये रनटाइम के दौरान JVM में अपने-आप लोड हो जाते हैं. - अगर आपके टारगेट में launcher एट्रिब्यूट के बारे में बताया गया है, तो _deploy.jar फ़ाइल सामान्य JAR फ़ाइल के बजाय, नेटिव बाइनरी होगी. इसमें लॉन्चर के साथ-साथ, आपके नियम की सभी नेटिव (C++) डिपेंडेंसी शामिल होंगी. इन सभी को एक स्टैटिक बाइनरी में लिंक किया जाएगा. असल जार फ़ाइल के बाइट, उस नेटिव बाइनरी में जोड़ दिए जाएंगे. इससे एक बाइनरी ब्लोब बन जाएगा, जिसमें एक्ज़ीक्यूटेबल और Java कोड, दोनों शामिल होंगे. नतीजे के तौर पर मिली JAR फ़ाइल को सीधे तौर पर चलाया जा सकता है. इसे किसी नेटिव बाइनरी की तरह चलाया जाता है. 
- name_deploy-src.jar: यह एक ऐसा संग्रह होता है जिसमें टारगेट के ट्रांज़िटिव क्लोज़र से इकट्ठा किए गए सोर्स शामिल होते हैं. ये- deploy.jarमें मौजूद क्लास से मेल खाएंगे. हालांकि, ऐसा सिर्फ़ तब होगा, जब जार का कोई मेल खाने वाला सोर्स जार न हो.
  srcs के बिना, java_binary नियम में deps एट्रिब्यूट का इस्तेमाल नहीं किया जा सकता. ऐसे नियम के लिए, runtime_deps से मिले main_class की ज़रूरत होती है.
यहां दिए गए कोड स्निपेट में, एक सामान्य गड़बड़ी के बारे में बताया गया है:
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",
    ],
)
तर्क
| विशेषताएं | |
|---|---|
| name | नाम; ज़रूरी है इस टारगेट के लिए यूनीक नाम. ऐप्लिकेशन के मुख्य एंट्री पॉइंट वाली सोर्स फ़ाइल के नाम का इस्तेमाल करना एक अच्छा तरीका है. हालांकि, इसमें एक्सटेंशन शामिल नहीं होना चाहिए. उदाहरण के लिए, अगर आपके एंट्री पॉइंट का नाम Main.javaहै, तो आपका नामMainहो सकता है. | 
| deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  depsके बारे में सामान्य टिप्पणियां देखें. ये टिप्पणियां, ज़्यादातर बिल्ड नियमों के तहत तय किए गए सामान्य एट्रिब्यूट में दी गई हैं. | 
| srcs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
             
             
            नियम: अगर नियम (आम तौर पर  
            यह तर्क लगभग हमेशा ज़रूरी होता है. हालांकि, अगर  | 
| resources | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
            अगर संसाधन तय किए गए हैं, तो उन्हें जार में बंडल किया जाएगा. साथ ही, कंपाइल करने से बनी सामान्य  संसाधन, सोर्स फ़ाइलें या जनरेट की गई फ़ाइलें हो सकती हैं. | 
| classpath_resources | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
            उन संसाधनों की सूची जो Java ट्री के रूट में मौजूद होने चाहिए. इस एट्रिब्यूट का मकसद सिर्फ़ तीसरे पक्ष की उन लाइब्रेरी के साथ काम करना है जिनके संसाधनों को क्लासपाथ पर  के तौर पर ढूंढना ज़रूरी है. | 
| create_executable | बूलियन; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से  java_single_jarका इस्तेमाल करें. | 
| deploy_env | लेबल की सूची; डिफ़ॉल्ट वैल्यू  java_binaryटारगेट की सूची. ये टारगेट, इस बाइनरी के लिए डिप्लॉयमेंट एनवायरमेंट को दिखाते हैं.
        इस एट्रिब्यूट को तब सेट करें, जब आपको ऐसा प्लगिन बनाना हो जिसे किसी दूसरेjava_binaryसे लोड किया जाएगा.इस एट्रिब्यूट को सेट करने से, इस बाइनरी के रनटाइम क्लासपाथ (और डिप्लॉय जार) से सभी डिपेंडेंसी बाहर निकल जाती हैं. ये डिपेंडेंसी, इस बाइनरी और deploy_envमें बताए गए टारगेट के बीच शेयर की जाती हैं. | 
| deploy_manifest_lines | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  META-INF/manifest.mfटारगेट के लिए जनरेट की गईMETA-INF/manifest.mfफ़ाइल में जोड़ने के लिए लाइनों की सूची.*_deploy.jarइस एट्रिब्यूट के कॉन्टेंट को "बदलाव की अनुमति दें" सेटिंग के तहत बदला नहीं जा सकता. | 
| javacopts | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  कंपाइलर के इन विकल्पों को, ग्लोबल कंपाइलर के विकल्पों के बाद javac को पास किया जाता है. | 
| jvm_flags | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  Java बाइनरी के लिए रैपर स्क्रिप्ट में CLASSPATH की परिभाषा शामिल होती है. इससे सभी डिपेंडेंट जार फ़ाइलें मिलती हैं. साथ ही, यह सही Java इंटरप्रेटर को शुरू करती है.
          रैपर स्क्रिप्ट से जनरेट की गई कमांड लाइन में, मुख्य क्लास का नाम शामिल होता है. इसके बाद,  ध्यान दें कि इस एट्रिब्यूट का  | 
| launcher | लेबल; डिफ़ॉल्ट वैल्यू  bin/javaप्रोग्राम के बजाय, अपने Java प्रोग्राम को चलाने के लिए किसी बाइनरी को तय करें.
          टारगेटcc_binaryहोना चाहिए. इस एट्रिब्यूट की वैल्यू के तौर पर,cc_binaryको सेट किया जा सकता है.cc_binary, 
          Java Invocation API को लागू करता हो.डिफ़ॉल्ट रूप से, Bazel सामान्य JDK लॉन्चर (bin/java या java.exe) का इस्तेमाल करेगा. इससे जुड़ा  ध्यान दें कि आपकी नेटिव (C++, SWIG, JNI) डिपेंडेंसी अलग-अलग तरीके से बनाई जाएंगी. यह इस बात पर निर्भर करता है कि JDK लॉन्चर का इस्तेमाल किया जा रहा है या किसी अन्य लॉन्चर का: 
 डिफ़ॉल्ट JDK लॉन्चर के अलावा किसी अन्य लॉन्चर का इस्तेमाल करने पर,  | 
| main_class | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  main()तरीके वाली क्लास का नाम.
          अगर किसी नियम में इस विकल्प का इस्तेमाल किया जाता है, तो उसेsrcs=[...]सूची की ज़रूरत नहीं होती.
          इसलिए, इस एट्रिब्यूट की मदद से, Java लाइब्रेरी से एक एक्ज़ीक्यूटेबल बनाया जा सकता है. इसमें पहले से ही एक या उससे ज़्यादाmain()तरीके शामिल होते हैं.
            इस एट्रिब्यूट की वैल्यू, क्लास का नाम है, न कि सोर्स फ़ाइल. क्लास, रनटाइम पर उपलब्ध होनी चाहिए: इसे इस नियम के तहत कंपाइल किया जा सकता है ( | 
| plugins | लेबल की सूची; डिफ़ॉल्ट वैल्यू  java_pluginको तब चलाया जाएगा, जब यह नियम बनाया जाएगा. लाइब्रेरी को उन डिपेंडेंसी से भी प्लगिन मिल सकते हैं जोexported_pluginsका इस्तेमाल करती हैं. इस नियम के नतीजे के तौर पर मिले जार में, प्लगिन से जनरेट किए गए संसाधन शामिल होंगे. | 
| resource_jars | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| resource_strip_prefix | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  
            अगर इस विकल्प को चुना जाता है, तो  | 
| runtime_deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  depsकी तरह, ये रनटाइम क्लासपाथ पर दिखेंगे. हालांकि, उनसे अलग, ये कंपाइल-टाइम क्लासपाथ पर नहीं दिखेंगे. सिर्फ़ रनटाइम पर ज़रूरी डिपेंडेंसी यहां दी जानी चाहिए. डिपेंडेंसी का विश्लेषण करने वाले टूल को उन टारगेट को अनदेखा करना चाहिए जोruntime_depsऔरdeps, दोनों में दिखते हैं. | 
| stamp | पूर्णांक; डिफ़ॉल्ट वैल्यू  
 स्टैंप किए गए बाइनरी को तब तक फिर से नहीं बनाया जाता, जब तक उनकी डिपेंडेंसी में बदलाव न हो. | 
| use_launcher | बूलियन; डिफ़ॉल्ट वैल्यू  अगर इस एट्रिब्यूट को 'गलत है' पर सेट किया जाता है, तो इस टारगेट के लिए launcher एट्रिब्यूट और इससे जुड़ा  | 
| use_testrunner | बूलियन; डिफ़ॉल्ट वैल्यू  com.google.testing.junit.runner.BazelTestRunner) क्लास को मुख्य एंट्री पॉइंट के तौर पर इस्तेमाल करें. साथ ही, टेस्ट क्लास को टेस्ट रनर को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",
        ],
    )
तर्क
| विशेषताएं | |
|---|---|
| name | नाम; ज़रूरी है इस टारगेट के लिए यूनीक नाम. | 
| deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| constraints | स्ट्रिंग की सूची; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट वैल्यू  | 
| exports | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| jars | लेबल की सूची; ज़रूरी हैइस टारगेट पर निर्भर करने वाले Java टारगेट को दी गई JAR फ़ाइलों की सूची. | 
| neverlink | बूलियन; डिफ़ॉल्ट वैल्यू  tools.jar. | 
| proguard_specs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  android_binaryटारगेट में जोड़ दिया जाएगा.
        यहां शामिल की गई फ़ाइलों में सिर्फ़ आइडमपोटेंट नियम होने चाहिए. जैसे, -dontnote, -dontwarn,
        assumenosideeffects, और -keep से शुरू होने वाले नियम. अन्य विकल्प सिर्फ़android_binaryके proguard_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: यह एक ऐसा संग्रह है जिसमें सोर्स ("सोर्स जार") शामिल होते हैं.
तर्क
| विशेषताएं | |
|---|---|
| name | नाम; ज़रूरी है इस टारगेट के लिए यूनीक नाम. | 
| deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  depsके बारे में सामान्य टिप्पणियां देखें. ये टिप्पणियां बनाने के ज़्यादातर नियमों के तहत तय किए गए सामान्य एट्रिब्यूट में दी गई हैं.
           
          इसके उलट,  | 
| srcs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
             
             
            नियम: अगर नियम (आम तौर पर  
            यह तर्क लगभग हमेशा ज़रूरी होता है. हालांकि, अगर  | 
| data | लेबल की सूची; डिफ़ॉल्ट वैल्यू  dataके बारे में सामान्य टिप्पणियां देखें. ये टिप्पणियां बनाने के ज़्यादातर नियमों के तहत तय किए गए सामान्य एट्रिब्यूट में दी गई हैं.
           | 
| resources | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
            अगर संसाधन तय किए गए हैं, तो उन्हें जार में बंडल किया जाएगा. साथ ही, कंपाइल करने से बनी सामान्य  संसाधन, सोर्स फ़ाइलें या जनरेट की गई फ़ाइलें हो सकती हैं. | 
| exported_plugins | लेबल की सूची; डिफ़ॉल्ट वैल्यू  java_plugins (जैसे, एनोटेशन
        प्रोसेसर) की सूची जिन्हें सीधे तौर पर इस लाइब्रेरी पर निर्भर रहने वाली लाइब्रेरी में एक्सपोर्ट करना है.
           | 
| exports | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
          यहां लिस्टिंग के नियम जोड़ने से, वे पैरंट नियमों के लिए उपलब्ध हो जाएंगे. ऐसा लगेगा कि पैरंट नियम, इन नियमों पर साफ़ तौर पर निर्भर हैं. यह सामान्य (एक्सपोर्ट नहीं किए गए)  खास जानकारी: अगर X, Y में मौजूद कोड को ऐक्सेस कर सकता है. आइए, इसे कुछ उदाहरणों की मदद से समझते हैं. 
          मान लें कि A, B पर निर्भर है और B, C पर निर्भर है. इस मामले में, C, A की ट्रांज़िटिव डिपेंडेंसी है. इसलिए, C के सोर्स बदलने और A को फिर से बनाने पर, सब कुछ सही तरीके से फिर से बन जाएगा. हालांकि, A को C में मौजूद क्लास इस्तेमाल करने का विकल्प नहीं मिलेगा. इसके लिए, A को अपने  एक्सपोर्ट की गई लाइब्रेरी बंद करने की सुविधा, सीधे तौर पर पैरंट रूल पर लागू होती है. यहां एक और उदाहरण दिया गया है: A, B पर निर्भर करता है. B, C और D पर निर्भर करता है. साथ ही, C को एक्सपोर्ट करता है, लेकिन D को नहीं. अब A के पास C का ऐक्सेस है, लेकिन D का नहीं. अब अगर C और D ने कुछ लाइब्रेरी एक्सपोर्ट की हैं, तो C' और D' के तौर पर, A सिर्फ़ C' को ऐक्सेस कर सकता है, लेकिन D' को नहीं. 
          अहम जानकारी: एक्सपोर्ट किया गया नियम, सामान्य डिपेंडेंसी नहीं होता. पिछले उदाहरण के मुताबिक, अगर B, C को एक्सपोर्ट करता है और उसे इस्तेमाल भी करना चाहता है, तो उसे C को अपने  | 
| javacopts | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  कंपाइलर के इन विकल्पों को, ग्लोबल कंपाइलर के विकल्पों के बाद javac को पास किया जाता है. | 
| neverlink | बूलियन; डिफ़ॉल्ट वैल्यू  tools.jarहैं.
          ध्यान दें कि  अगर रनटाइम लाइब्रेरी, कंपाइलेशन लाइब्रेरी से अलग है, तो आपको यह पक्का करना होगा कि वह सिर्फ़ उन जगहों पर अलग हो जहां JLS, कंपाइलर को इनलाइन करने की अनुमति नहीं देता है. साथ ही, यह JLS के सभी आने वाले वर्शन के लिए लागू होना चाहिए. | 
| plugins | लेबल की सूची; डिफ़ॉल्ट वैल्यू  java_pluginको तब चलाया जाएगा, जब यह नियम बनाया जाएगा. लाइब्रेरी को उन डिपेंडेंसी से भी प्लगिन मिल सकते हैं जोexported_pluginsका इस्तेमाल करती हैं. इस नियम के नतीजे के तौर पर मिले जार में, प्लगिन से जनरेट किए गए संसाधन शामिल होंगे. | 
| proguard_specs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  android_binaryटारगेट में जोड़ दिया जाएगा.
        यहां शामिल की गई फ़ाइलों में सिर्फ़ आइडमपोटेंट नियम होने चाहिए. जैसे, -dontnote, -dontwarn,
        assumenosideeffects, और -keep से शुरू होने वाले नियम. अन्य विकल्प सिर्फ़android_binaryके proguard_specs में दिख सकते हैं, ताकि यह पक्का किया जा सके कि मर्ज किए गए विकल्प एक-दूसरे से अलग हों. | 
| resource_jars | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| resource_strip_prefix | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  
            अगर इस विकल्प को चुना जाता है, तो  | 
| runtime_deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  depsकी तरह, ये रनटाइम क्लासपाथ पर दिखेंगे. हालांकि, उनसे अलग, ये कंपाइल-टाइम क्लासपाथ पर नहीं दिखेंगे. सिर्फ़ रनटाइम पर ज़रूरी डिपेंडेंसी यहां दी जानी चाहिए. डिपेंडेंसी का विश्लेषण करने वाले टूल को उन टारगेट को अनदेखा करना चाहिए जो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, .proto फ़ाइलों से Java कोड जनरेट करता है.
deps, proto_library
 के नियमों के मुताबिक होना चाहिए.
उदाहरण:
java_library(
    name = "lib",
    deps = [":foo"],
)
java_lite_proto_library(
    name = "foo",
    deps = [":bar"],
)
proto_library(
    name = "bar",
)
तर्क
| विशेषताएं | |
|---|---|
| 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, .proto फ़ाइलों से Java कोड जनरेट करता है.
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",
)
तर्क
| विशेषताएं | |
|---|---|
| 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 टेस्ट को कंपाइल करता है. टेस्ट, आपके टेस्ट कोड के चारों ओर एक बाइनरी रैपर होता है. मुख्य क्लास को कंपाइल करने के बजाय, टेस्ट रनर के मुख्य तरीके को लागू किया जाता है.
इंप्लिसिट आउटपुट टारगेट
- name.jar: यह एक Java संग्रह है.
- name_deploy.jar: डिप्लॉयमेंट के लिए सही Java संग्रह. (यह सिर्फ़ तब बनाया जाता है, जब इसके लिए साफ़ तौर पर अनुरोध किया जाता है.) ज़्यादा जानकारी के लिए,- name_deploy.jarjava_binary से मिले आउटपुट- name_deploy.jarका ब्यौरा देखें.
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",
    ],
)
तर्क
| विशेषताएं | |
|---|---|
| name | नाम; ज़रूरी है इस टारगेट के लिए यूनीक नाम. | 
| deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  depsके बारे में सामान्य टिप्पणियां देखें. ये टिप्पणियां, ज़्यादातर बिल्ड नियमों के तहत तय किए गए सामान्य एट्रिब्यूट में दी गई हैं. | 
| srcs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
             
             
            नियम: अगर नियम (आम तौर पर  
            यह तर्क लगभग हमेशा ज़रूरी होता है. हालांकि, अगर  | 
| resources | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
            अगर संसाधन तय किए गए हैं, तो उन्हें जार में बंडल किया जाएगा. साथ ही, कंपाइल करने से बनी सामान्य  संसाधन, सोर्स फ़ाइलें या जनरेट की गई फ़ाइलें हो सकती हैं. | 
| classpath_resources | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
            उन संसाधनों की सूची जो Java ट्री के रूट में मौजूद होने चाहिए. इस एट्रिब्यूट का मकसद सिर्फ़ तीसरे पक्ष की उन लाइब्रेरी के साथ काम करना है जिनके संसाधनों को क्लासपाथ पर  के तौर पर ढूंढना ज़रूरी है. | 
| create_executable | बूलियन; कॉन्फ़िगर नहीं किया जा सकता; डिफ़ॉल्ट रूप से  java_single_jarका इस्तेमाल करें. | 
| deploy_manifest_lines | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  META-INF/manifest.mfटारगेट के लिए जनरेट की गईMETA-INF/manifest.mfफ़ाइल में जोड़ने के लिए लाइनों की सूची.*_deploy.jarइस एट्रिब्यूट के कॉन्टेंट को "बदलाव की अनुमति दें" सेटिंग के तहत बदला नहीं जा सकता. | 
| javacopts | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  कंपाइलर के इन विकल्पों को, ग्लोबल कंपाइलर के विकल्पों के बाद javac को पास किया जाता है. | 
| jvm_flags | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  Java बाइनरी के लिए रैपर स्क्रिप्ट में CLASSPATH की परिभाषा शामिल होती है. इससे सभी डिपेंडेंट जार फ़ाइलें मिलती हैं. साथ ही, यह सही Java इंटरप्रेटर को शुरू करती है.
          रैपर स्क्रिप्ट से जनरेट की गई कमांड लाइन में, मुख्य क्लास का नाम शामिल होता है. इसके बाद,  ध्यान दें कि इस एट्रिब्यूट का  | 
| launcher | लेबल; डिफ़ॉल्ट वैल्यू  bin/javaप्रोग्राम के बजाय, अपने Java प्रोग्राम को चलाने के लिए किसी बाइनरी को तय करें.
          टारगेटcc_binaryहोना चाहिए. इस एट्रिब्यूट की वैल्यू के तौर पर,cc_binaryको सेट किया जा सकता है.cc_binary, 
          Java Invocation API को लागू करता हो.डिफ़ॉल्ट रूप से, Bazel सामान्य JDK लॉन्चर (bin/java या java.exe) का इस्तेमाल करेगा. इससे जुड़ा  ध्यान दें कि आपकी नेटिव (C++, SWIG, JNI) डिपेंडेंसी अलग-अलग तरीके से बनाई जाएंगी. यह इस बात पर निर्भर करता है कि JDK लॉन्चर का इस्तेमाल किया जा रहा है या किसी अन्य लॉन्चर का: 
 डिफ़ॉल्ट JDK लॉन्चर के अलावा किसी अन्य लॉन्चर का इस्तेमाल करने पर,  | 
| main_class | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  main()तरीके वाली क्लास का नाम.
          अगर किसी नियम में इस विकल्प का इस्तेमाल किया जाता है, तो उसेsrcs=[...]सूची की ज़रूरत नहीं होती.
          इसलिए, इस एट्रिब्यूट की मदद से, Java लाइब्रेरी से एक एक्ज़ीक्यूटेबल बनाया जा सकता है. इसमें पहले से ही एक या उससे ज़्यादाmain()तरीके शामिल होते हैं.
            इस एट्रिब्यूट की वैल्यू, क्लास का नाम है, न कि सोर्स फ़ाइल. क्लास, रनटाइम पर उपलब्ध होनी चाहिए: इसे इस नियम के तहत कंपाइल किया जा सकता है ( | 
| plugins | लेबल की सूची; डिफ़ॉल्ट वैल्यू  java_pluginको तब चलाया जाएगा, जब यह नियम बनाया जाएगा. लाइब्रेरी को उन डिपेंडेंसी से भी प्लगिन मिल सकते हैं जोexported_pluginsका इस्तेमाल करती हैं. इस नियम के नतीजे के तौर पर मिले जार में, प्लगिन से जनरेट किए गए संसाधन शामिल होंगे. | 
| resource_jars | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| resource_strip_prefix | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  
            अगर इस विकल्प को चुना जाता है, तो  | 
| runtime_deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  depsकी तरह, ये रनटाइम क्लासपाथ पर दिखेंगे. हालांकि, उनसे अलग, ये कंपाइल-टाइम क्लासपाथ पर नहीं दिखेंगे. सिर्फ़ रनटाइम पर ज़रूरी डिपेंडेंसी यहां दी जानी चाहिए. डिपेंडेंसी का विश्लेषण करने वाले टूल को उन टारगेट को अनदेखा करना चाहिए जोruntime_depsऔरdeps, दोनों में दिखते हैं. | 
| stamp | पूर्णांक; डिफ़ॉल्ट वैल्यू  
 स्टैंप किए गए बाइनरी को तब तक फिर से नहीं बनाया जाता, जब तक उनकी डिपेंडेंसी में बदलाव न हो. | 
| test_class | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  
          डिफ़ॉल्ट रूप से, अगर इस आर्ग्युमेंट को तय नहीं किया जाता है, तो लेगसी मोड का इस्तेमाल किया जाता है. साथ ही, टेस्ट आर्ग्युमेंट का इस्तेमाल किया जाता है. पहले आर्ग्युमेंट पर फ़ॉलबैक न करने के लिए,  
          इस एट्रिब्यूट से, उस Java क्लास का नाम तय किया जाता है जिसे इस टेस्ट के ज़रिए चलाया जाना है. इस विकल्प को सेट करने की ज़रूरत बहुत कम ही पड़ती है. इस आर्ग्युमेंट को शामिल न करने पर, टारगेट के  
          JUnit3 के लिए, टेस्ट क्लास को  
          इस एट्रिब्यूट की मदद से, कई  | 
| use_launcher | बूलियन; डिफ़ॉल्ट वैल्यू  अगर इस एट्रिब्यूट को 'गलत है' पर सेट किया जाता है, तो इस टारगेट के लिए launcher एट्रिब्यूट और इससे जुड़ा  | 
| use_testrunner | बूलियन; डिफ़ॉल्ट वैल्यू  com.google.testing.junit.runner.BazelTestRunner) क्लास को मुख्य एंट्री पॉइंट के तौर पर इस्तेमाल करें. साथ ही, टेस्ट क्लास को टेस्ट रनर को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",
    ]
)
तर्क
| विशेषताएं | |
|---|---|
| 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, Bazel की मदद से चलाए जाने वाले Java कंपाइलर के लिए प्लगिन तय करता है. फ़िलहाल, सिर्फ़ एनोटेशन प्रोसेसर वाले प्लगिन इस्तेमाल किए जा सकते हैं. java_library या java_binary नियम, plugins एट्रिब्यूट के ज़रिए प्लगिन पर निर्भर रहकर उन्हें चला सकते हैं. java_library, उन लाइब्रेरी में प्लगिन अपने-आप एक्सपोर्ट कर सकता है जो सीधे तौर पर exported_plugins पर निर्भर करती हैं.
इंप्लिसिट आउटपुट टारगेट
- libname.jar: यह एक Java संग्रह है.
  आर्ग्युमेंट, java_library फ़ंक्शन के आर्ग्युमेंट की तरह ही होते हैं. हालांकि, इसमें processor_class आर्ग्युमेंट को जोड़ा जाता है.
तर्क
| विशेषताएं | |
|---|---|
| name | नाम; ज़रूरी है इस टारगेट के लिए यूनीक नाम. | 
| deps | लेबल की सूची; डिफ़ॉल्ट वैल्यू  depsके बारे में सामान्य टिप्पणियां देखें. ये टिप्पणियां बनाने के ज़्यादातर नियमों के तहत तय किए गए सामान्य एट्रिब्यूट में दी गई हैं.
           
          इसके उलट,  | 
| srcs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
             
             
            नियम: अगर नियम (आम तौर पर  
            यह तर्क लगभग हमेशा ज़रूरी होता है. हालांकि, अगर  | 
| data | लेबल की सूची; डिफ़ॉल्ट वैल्यू  dataके बारे में सामान्य टिप्पणियां देखें. ये टिप्पणियां बनाने के ज़्यादातर नियमों के तहत तय किए गए सामान्य एट्रिब्यूट में दी गई हैं.
           | 
| resources | लेबल की सूची; डिफ़ॉल्ट वैल्यू  
            अगर संसाधन तय किए गए हैं, तो उन्हें जार में बंडल किया जाएगा. साथ ही, कंपाइल करने से बनी सामान्य  संसाधन, सोर्स फ़ाइलें या जनरेट की गई फ़ाइलें हो सकती हैं. | 
| generates_api | बूलियन; डिफ़ॉल्ट वैल्यू  अगर कोई नियम, एनोटेशन प्रोसेसर जनरेट करने वाले एपीआई का इस्तेमाल करता है, तो उस पर निर्भर अन्य नियम, जनरेट किए गए कोड को सिर्फ़ तब रेफ़र कर सकते हैं, जब उनके कंपाइल करने की कार्रवाइयां, जनरेट करने वाले नियम के बाद शेड्यूल की गई हों. इस एट्रिब्यूट से Bazel को यह निर्देश मिलता है कि --java_header_compilation चालू होने पर, शेड्यूल करने से जुड़ी पाबंदियां लागू करें. चेतावनी: इस एट्रिब्यूट से, बिल्ड की परफ़ॉर्मेंस पर असर पड़ता है. इसका इस्तेमाल सिर्फ़ तब करें, जब ज़रूरी हो. | 
| javacopts | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  कंपाइलर के इन विकल्पों को, ग्लोबल कंपाइलर के विकल्पों के बाद javac को पास किया जाता है. | 
| neverlink | बूलियन; डिफ़ॉल्ट वैल्यू  tools.jarहैं.
          ध्यान दें कि  अगर रनटाइम लाइब्रेरी, कंपाइलेशन लाइब्रेरी से अलग है, तो आपको यह पक्का करना होगा कि वह सिर्फ़ उन जगहों पर अलग हो जहां JLS, कंपाइलर को इनलाइन करने की अनुमति नहीं देता है. साथ ही, यह JLS के सभी आने वाले वर्शन के लिए लागू होना चाहिए. | 
| output_licenses | लाइसेंस का टाइप; डिफ़ॉल्ट रूप से  common attributes
        देखें | 
| plugins | लेबल की सूची; डिफ़ॉल्ट वैल्यू  java_pluginको तब चलाया जाएगा, जब यह नियम बनाया जाएगा. लाइब्रेरी को उन डिपेंडेंसी से भी प्लगिन मिल सकते हैं जोexported_pluginsका इस्तेमाल करती हैं. इस नियम के नतीजे के तौर पर मिले जार में, प्लगिन से जनरेट किए गए संसाधन शामिल होंगे. | 
| processor_class | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  | 
| proguard_specs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  android_binaryटारगेट में जोड़ दिया जाएगा.
        यहां शामिल की गई फ़ाइलों में सिर्फ़ आइडमपोटेंट नियम होने चाहिए. जैसे, -dontnote, -dontwarn,
        assumenosideeffects, और -keep से शुरू होने वाले नियम. अन्य विकल्प सिर्फ़android_binaryके proguard_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",
)
तर्क
| विशेषताएं | |
|---|---|
| name | नाम; ज़रूरी है इस टारगेट के लिए यूनीक नाम. | 
| srcs | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| default_cds | लेबल; डिफ़ॉल्ट वैल्यू  java_runtimeके लिए डिफ़ॉल्ट सीडीएस संग्रह. जब किसीjava_binaryटारगेट के लिए hermetic चालू होता है और अगर टारगेट,classlistएट्रिब्यूट की वैल्यू तय करके अपना सीडीएस संग्रह उपलब्ध नहीं कराता है, तोjava_runtimeडिफ़ॉल्ट सीडीएस को hermetic डिप्लॉय JAR में पैकेज किया जाता है. | 
| 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 कंपाइलर के लिए कॉन्फ़िगरेशन तय किया जाता है. --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",
)
तर्क
| विशेषताएं | |
|---|---|
| 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 | लेबल की सूची; ज़रूरी हैGenClass को डिप्लॉय करने वाले जार का लेबल. | 
| header_compiler | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| header_compiler_direct | लेबल की सूची; डिफ़ॉल्ट वैल्यू  यह टूल, एनोटेशन प्रोसेसिंग की सुविधा के साथ काम नहीं करता. | 
| ijar | लेबल की सूची; ज़रूरी हैijar एक्ज़ीक्यूटेबल का लेबल. | 
| jacocorunner | लेबल; डिफ़ॉल्ट वैल्यू  | 
| java_runtime | लेबल; ज़रूरी हैइस टूलचेन के साथ इस्तेमाल किया जाने वाला java_runtime. यह एक्ज़ीक्यूशन कॉन्फ़िगरेशन में डिफ़ॉल्ट रूप से java_runtime पर सेट होता है. | 
| javabuilder | लेबल की सूची; ज़रूरी है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 | लेबल की सूची; ज़रूरी हैSingleJar डिप्लॉय जार का लेबल. | 
| source_version | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  | 
| target_version | स्ट्रिंग; डिफ़ॉल्ट वैल्यू  | 
| timezone_data | लेबल; डिफ़ॉल्ट वैल्यू  | 
| tools | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| turbine_data | लेबल की सूची; डिफ़ॉल्ट वैल्यू  | 
| turbine_jvm_opts | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  | 
| xlint | स्ट्रिंग की सूची; डिफ़ॉल्ट वैल्यू  |