Java_सामान्य

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Starlark में Java कंपाइलेशन की सहायता के लिए उपयोगिता.

सदस्य

BootClassPathInfo

Provider java_common.BootClassPathInfo

बूटक्लासपथ की जानकारी देने के लिए इस्तेमाल किया जाने वाला प्रोवाइडर

कंपाइल करना

struct java_common.compile(ctx, *, source_jars=[], source_files=[], output, output_source_jar=None, javac_opts=[], deps=[], runtime_deps=[], exports=[], plugins=[], exported_plugins=[], native_libraries=[], annotation_processor_additional_inputs=[], annotation_processor_additional_outputs=[], strict_deps='ERROR', java_toolchain, bootclasspath=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

Starlark नियम को लागू करके, Java सोर्स फ़ाइलों/jar को कॉम्पाइल करता है. साथ ही, एक ऐसा प्रोवाइडर दिखाता है जो कॉम्पाइलेशन के नतीजों को दिखाता है. इस प्रोवाइडर को इस नियम से उत्सर्जित किए गए प्रोवाइडर के सेट में जोड़ा जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
ctx ctx; ज़रूरी है
नियम का संदर्भ.
source_jars फ़ाइल का क्रम; डिफ़ॉल्ट तौर पर []
होता है उन jar की सूची जिन्हें कंपाइल करना है. source_jars या source_files में से कम से कम एक की जानकारी देना ज़रूरी है.
source_files फ़ाइल का क्रम; डिफ़ॉल्ट रूप से []
होता है उन Java सोर्स फ़ाइलों की सूची जिन्हें कंपाइल करना है. source_jars या source_files में से कम से कम एक की जानकारी देना ज़रूरी है.
output फ़ाइल; ज़रूरी है
output_source_jar फ़ाइल या None; डिफ़ॉल्ट तौर पर None
आउटपुट सोर्स jar. अगर यह सेट नहीं किया गया है, तो डिफ़ॉल्ट रूप से `{output_jar}-src.jar` पर सेट होता है.
javac_opts स्ट्रिंग का क्रम; डिफ़ॉल्ट []
है पसंदीदा javac विकल्पों की सूची.
deps struct का sequence; डिफ़ॉल्ट तौर पर, यह []
होता है डिपेंडेंसी की सूची.
runtime_deps structs का sequence; डिफ़ॉल्ट []
है यह रनटाइम डिपेंडेंसी की सूची है.
exports struct का sequence; डिफ़ॉल्ट तौर पर []
होता है एक्सपोर्ट की सूची.
plugins struct का sequence या struct का sequence; डिफ़ॉल्ट []
है प्लग इन की सूची.
exported_plugins struct का sequence या struct का sequence; डिफ़ॉल्ट []
है एक्सपोर्ट किए गए प्लग इन की सूची.
native_libraries CcInfos का sequence; डिफ़ॉल्ट रूप से []
होता है CC की नेटिव लाइब्रेरी की डिपेंडेंसी, जो इस लाइब्रेरी के लिए ज़रूरी हैं.
annotation_processor_additional_inputs फ़ाइल का क्रम; डिफ़ॉल्ट रूप से []
होता है एनोटेशन प्रोसेसिंग के लिए, Java सोर्स के अलावा Java कंपाइलेशन ऐक्शन में इनपुट की यह सूची शामिल होगी.
annotation_processor_additional_outputs फ़ाइल का क्रम; डिफ़ॉल्ट रूप से []
होता है एनोटेशन प्रोसेसिंग से क्लास jar के अलावा, Java कंपाइलेशन ऐक्शन से मिलने वाले आउटपुट की सूची.
strict_deps string; डिफ़ॉल्ट रूप से 'ERROR'
होता है यह एक स्ट्रिंग है, जिसमें सख्त डिपेंडेंसी को मैनेज करने का तरीका बताया गया है. संभावित वैल्यू: 'OFF', 'ERROR', 'WARN', और 'DEFAULT'. ज़्यादा जानकारी के लिए, --strict_java_deps flag. By default 'ERROR'. देखें
java_toolchain जानकारी; ज़रूरी है
इस कंपाइलेशन के लिए इस्तेमाल किया जाने वाला JavaToolchainInfo. यह ज़रूरी है.
bootclasspath डिफ़ॉल्ट तौर पर None
इस कंपाइलेशन के लिए इस्तेमाल की जाने वाली BootClassPathInfo. इस पैरामीटर के मौजूद होने पर, दिए गए java_toolchain से जुड़े bootclasspath को बदल दिया जाता है.
sourcepath फ़ाइल का क्रम; डिफ़ॉल्ट तौर पर []
है
resources फ़ाइल का क्रम; डिफ़ॉल्ट तौर पर []
है
resource_jars फ़ाइल का क्रम; डिफ़ॉल्ट तौर पर []
है
classpath_resources फ़ाइल का क्रम; डिफ़ॉल्ट तौर पर []
है
bool; डिफ़ॉल्ट False
है
enable_annotation_processing bool; डिफ़ॉल्ट रूप से True
होता है इस कंपाइलेशन में एनोटेशन प्रोसेसिंग की सुविधा बंद कर देता है. इस वजह से, प्लग इन या डिपेंडेंसी के exported_plugins में दिए गए किसी भी एनोटेशन प्रोसेसर को अनदेखा कर दिया जाता है.
enable_compile_jar_action bool; डिफ़ॉल्ट रूप से True
पर सेट होता है हेडर कंपाइलेशन या ijar बनाने की सुविधा चालू करता है. अगर इसे 'गलत है' पर सेट किया जाता है, तो यह किसी भी डिपेंडेंट के कंपाइलेशन क्लासपाथ में, पूरी क्लास के jar का इस्तेमाल करने के लिए मजबूर करता है. ऐसा करने का मकसद, लाइब्रेरी टारगेट के अलावा अन्य टारगेट का इस्तेमाल करना है. जैसे, ऐसे बाइनरी जिनमें डिपेंडेंट नहीं होते.
add_exports स्ट्रिंग का क्रम; डिफ़ॉल्ट रूप से []
होता है इस लाइब्रेरी को दिए गए /को ऐक्सेस करने की अनुमति दें.
add_opens स्ट्रिंग का क्रम; डिफ़ॉल्ट रूप से []
होता है इस लाइब्रेरी को दिए गए /को रिफ़्लेक्टिव तरीके से ऐक्सेस करने की अनुमति दें.

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

इस कुंजी का इस्तेमाल, उस प्रोवाइडर को वापस पाने के लिए किया जाता है जिसमें इस्तेमाल किए जा रहे Java रनटाइम की जानकारी होती है.

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

इस कुंजी का इस्तेमाल, उस प्रोवाइडर को वापस पाने के लिए किया जाता है जिसमें इस्तेमाल किए जा रहे Java टूलचेन की जानकारी होती है.

मर्ज करें

struct java_common.merge(providers)

दिए गए प्रोवाइडर को एक JavaInfo में मर्ज करता है.

पैरामीटर

पैरामीटर ब्यौरा
providers struct का sequence; ज़रूरी है
मर्ज करने के लिए, सेवा देने वाली कंपनियों की सूची.

pack_sources

File java_common.pack_sources(actions, *, output_source_jar=None, sources=[], source_jars=[], java_toolchain)

सोर्स और सोर्स जर्स को एक ही सोर्स जर्स फ़ाइल में पैक करता है. रिटर्न वैल्यू को आम तौर पर

JavaInfo#source_jar

.output_jar या output_source_jar में से कम से कम एक पैरामीटर होना ज़रूरी है.

पैरामीटर

पैरामीटर ब्यौरा
actions actions; ज़रूरी
ctx.actions
output_source_jar फ़ाइल या None; डिफ़ॉल्ट तौर पर None
आउटपुट सोर्स jar.
sources फ़ाइल का क्रम; डिफ़ॉल्ट तौर पर []
होता है सोर्स jar में पैक की जाने वाली Java सोर्स फ़ाइलों की सूची.
source_jars फ़ाइल का क्रम; डिफ़ॉल्ट रूप से []
होता है सोर्स जार में पैक किए जाने वाले सोर्स जार की सूची.
java_toolchain Info; ज़रूरी है
ijar टूल ढूंढने के लिए इस्तेमाल किया जाने वाला JavaToolchainInfo.

run_ijar

File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)

यह किसी jar पर ijar चलाता है और उसके मेथड बॉडी को हटा देता है. इससे, किसी भी रीकंपाइल के दौरान, डिपेंडेंट जारों को फिर से बनाने की ज़रूरत कम हो जाती है. इसमें, सिर्फ़ तरीके के लागू होने में हुए आसान बदलाव शामिल होते हैं. रिटर्न वैल्यू को आम तौर पर JavaInfo#compile_jar में पास किया जाता है.

पैरामीटर

पैरामीटर ब्यौरा
actions actions; ज़रूरी
ctx.actions
jar फ़ाइल; ज़रूरी है
वह jar जिस पर ijar को चलाना है.
target_label लेबल या None; डिफ़ॉल्ट तौर पर None
जार पर स्टैंप करने के लिए टारगेट लेबल. add_dep की सहायता टीम से संपर्क करने के लिए इस्तेमाल किया जाता है. आम तौर पर, मौजूदा नियम के लेबल के साथ कंटेनर को स्टैंप करने के लिए, ctx.label पास किया जाता है.
java_toolchain Info; ज़रूरी है
ijar टूल ढूंढने के लिए इस्तेमाल किया जाने वाला JavaToolchainInfo.

stamp_jar

File java_common.stamp_jar(actions, *, jar, target_label, java_toolchain)

add_dep सहायता के लिए, टारगेट लेबल वाले जार पर स्टैंप लगाता है. रिटर्न वैल्यू को आम तौर पर JavaInfo#compile_jar में पास किया जाता है. जब भी हो सके, run_ijar का इस्तेमाल करें.

पैरामीटर

पैरामीटर ब्यौरा
actions actions; ज़रूरी
ctx.actions
jar फ़ाइल; ज़रूरी है
stamp_jar को चलाने के लिए जार.
target_label लेबल; ज़रूरी है
यह एक टारगेट लेबल है, जिससे डिवाइस पर मौजूद JAR फ़ाइल को स्टैंप किया जाता है. add_dep की सहायता टीम से संपर्क करने के लिए इस्तेमाल किया जाता है. आम तौर पर, मौजूदा नियम के लेबल के साथ कंटेनर को स्टैंप करने के लिए, ctx.label पास किया जाता है.
java_toolchain जानकारी; ज़रूरी है
stamp_jar टूल ढूंढने के लिए इस्तेमाल किया जाने वाला JavaToolchainInfo.