Java_सामान्य

समस्या की शिकायत करें सोर्स देखें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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, host_javabase=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

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

पैरामीटर

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

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

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

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

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

मर्ज करें

struct java_common.merge(providers)

यह फ़ंक्शन, दी गई कंपनियों को एक JavaInfo में मर्ज करता है.

पैरामीटर

पैरामीटर ब्यौरा
providers sequence of structs; ज़रूरी है
मर्ज किए जाने वाले प्रोवाइडर की सूची.

pack_sources

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

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

JavaInfo#source_jar

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

पैरामीटर

पैरामीटर ब्यौरा
actions required
ctx.actions
output_jar File; या None; डिफ़ॉल्ट रूप से None
होता है अब इस्तेमाल नहीं किया जा सकता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इसके भरोसे न रहें. --+incompatible_java_common_parameters के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी.
अब इस्तेमाल नहीं किया जाता: नियम का आउटपुट जार. इस विकल्प का इस्तेमाल, सोर्स जार का नाम रखने के लिए किया जाता है. यह पैरामीटर, output_source_jar पैरामीटर को `{output_jar}-src.jar` पर सेट करता है.इसके बजाय, output_source_jar पैरामीटर का सीधे तौर पर इस्तेमाल करें.
output_source_jar File; या None; डिफ़ॉल्ट रूप से None
होता है आउटपुट सोर्स जार.
sources sequence of Files; डिफ़ॉल्ट रूप से []
होता है यह Java की उन सोर्स फ़ाइलों की सूची होती है जिन्हें सोर्स जार में पैक किया जाना है.
source_jars sequence of Files; डिफ़ॉल्ट रूप से []
होता है यह सोर्स जार में पैक किए जाने वाले सोर्स जार की सूची होती है.
java_toolchain ज़रूरी है
ijar टूल को खोजने के लिए, JavaToolchainInfo का इस्तेमाल किया जाता है.
host_javabase डिफ़ॉल्ट रूप से None
होता है अब इस्तेमाल नहीं किया जा सकता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इसके भरोसे न रहें. --+incompatible_java_common_parameters के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी.
इस्तेमाल बंद कर दिया गया है: इस पैरामीटर को हटाया जा सकता है (java_toolchain के साथ host_javabase उपलब्ध कराया जाता है)

run_ijar

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

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

पैरामीटर

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

stamp_jar

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

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

पैरामीटर

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