BazelCon 2022, 16 नवंबर से 17 नवंबर तक न्यूयॉर्क में और ऑनलाइन उपलब्ध है.
आज ही रजिस्टर करें!

Javaप्लगinजानकारी

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
सेवा देने वाली कोई कंपनी, Java प्लग इन के बारे में जानकारी देते हुए.

इस समय एनोटेशन प्रोसेसर सिर्फ़ एक तरह के प्लग इन हैं, जिनका इस्तेमाल किया जा सकता है.

सदस्य

Javaप्लगinजानकारी

JavaPluginInfo JavaPluginInfo(runtime_deps, *, processor_class, data=[], generates_api=False)

JavaPluginInfo कंस्ट्रक्टर.

पैरामीटर

पैरामीटर ब्यौरा
runtime_deps sequence of JavaInfos; ज़रूरी
ऐसी लाइब्रेरी जिसमें एनोटेशन प्रोसेसर है.
processor_class string; or None; ज़रूरी है
पूरी तरह-क्वालिफ़ाइड क्लास का वह नाम जिसे Java कंपाइलर, एनोटेशन प्रोसेसर के लिए एंट्री पॉइंट के तौर पर इस्तेमाल करता है.
data sequence of Files; or depset of Files; डिफ़ॉल्ट = []
एक्ज़ीक्यूशन के दौरान इस एनोटेशन प्रोसेसर के लिए ज़रूरी फ़ाइलें.
generates_api डिफ़ॉल्ट = गलत
जब यह एनोटेशन प्रोसेसर एपीआई कोड जनरेट करता है, तब 'सही' पर सेट करें.

इस तरह के एनोटेशन प्रोसेसर को किसी Java टारगेट में लागू किया जाता है. ऐसा हेडर हेडर बनाने से पहले किया जाता है (जिसमें सिग्नेचर सिग्नेचर होते हैं). जब कोई एपीआई प्लग इन मौजूद नहीं होता है, तो हेडर से जार जनरेट किए जाते हैं, जिससे ज़रूरी पाथ कम हो जाता है.

चेतावनी: यह पैरामीटर बिल्ड की परफ़ॉर्मेंस पर असर डालता है. इसका ज़रूरत होने पर ही इस्तेमाल करें.

api_Generate_प्लग इन

JavaPluginData JavaPluginInfo.api_generating_plugins

इस टारगेट के ज़रिए एक्सपोर्ट या एक्सपोर्ट किए गए एपीआई जनरेट करने वाले एपीआई के बारे में डेटा देता है.

उन एनोटेशन प्रोसेसर के हेडर जार (जिसमें तरीकों के हस्ताक्षर शामिल हैं) बनाने से पहले, किसी Java टारगेट पर लागू किए जाते हैं. जब कोई एपीआई प्लग इन मौजूद नहीं होता है, तो हेडर से जार जनरेट किए जाते हैं, जिससे ज़रूरी पाथ कम हो जाता है.

api_generating_plugins, plugins का सबसेट है.

Java_आउटपुट

list JavaPluginInfo.java_outputs

इस Java/Java जैसे टारगेट के आउटपुट के बारे में जानकारी देता है.

प्लग इन

JavaPluginData JavaPluginInfo.plugins

उन सभी प्लग इन के बारे में डेटा देता है जिन्हें इस्तेमाल करने वाला टारगेट लागू करना चाहिए.

यह आम तौर पर या तो java_plugin होता है या फिर एक या एक से ज़्यादा प्लग इन एक्सपोर्ट करने वाला java_library.

java_library, इस फ़ील्ड के सभी प्लग इन के साथ एनोटेशन प्रोसेस करता है. यह deps और plugins एट्रिब्यूट में दिखता है.

to_json

string JavaPluginInfo.to_json()

अब इस्तेमाल में नहीं है. यह एपीआई काम नहीं करता है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह ---incompatible_struct_has_no_methods के साथ बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड आने वाले समय में हटाया जा सकता है.
स्ट्रक्चर्ड पैरामीटर से JSON स्ट्रिंग बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्ट एलिमेंट (बार-बार) स्ट्रिंग, इंट्स, बूलियन, दूसरे स्ट्रक्चर, इन टाइप की सूची या स्ट्रिंग की कुंजियों और इन टाइप के मानों वाला शब्दकोश हो. स्ट्रिंग में कोट और नई लाइन को एस्केप किया गया है. उदाहरण:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

समर्थन नहीं होना: इसके बजाय, json.encode(x) या json.encode_indent(x) का इस्तेमाल करें. यह scripts के अलावा दूसरे मानों के लिए भी काम करता है और स्ट्रक्ट फ़ील्ड के नेमस्पेस को प्रदूषित नहीं करता है.

to_proto

string JavaPluginInfo.to_proto()

अब इस्तेमाल में नहीं है. यह एपीआई काम नहीं करता है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह ---incompatible_struct_has_no_methods के साथ बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड आने वाले समय में हटाया जा सकता है.
टेक्स्ट पैरामीटर से टेक्स्ट मैसेज बनाता है. यह तरीका तभी काम करता है, जब सभी निर्देश एलिमेंट (बार-बार) स्ट्रिंग, पूर्णांक, बूलियन, दूसरे निर्देश या इस तरह के सूची या सूची हों. स्ट्रिंग में कोट और नई लाइन को एस्केप किया गया है. स्ट्रैक्ट कुंजियां, क्रम से लगाए गए क्रम में रखी जाती हैं. उदाहरण:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

समर्थन रोके: इसके बजाय proto.encode_text(x) का उपयोग करें.