फ़िलहाल, एनोटेशन प्रोसेसर ही सिर्फ़ प्लगिन के साथ काम करते हैं.
पैसे चुकाकर बने सदस्य
JavaPluginInfo
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
|
डिफ़ॉल्ट = False जब यह एनोटेशन प्रोसेसर, एपीआई कोड जनरेट करता है, तो इसे 'सही' पर सेट करें. इस तरह के एनोटेशन प्रोसेसर को, अपने हेडर जार (जिसमें मेथड के सिग्नेचर होते हैं) बनाने से पहले, Java टारगेट पर लागू किया जाता है. अगर कोई एपीआई प्लगिन मौजूद नहीं होता है, तो सोर्स से हेडर जार जनरेट होते हैं. इससे अहम पाथ कम हो जाता है. चेतावनी: यह पैरामीटर, बिल्ड की परफ़ॉर्मेंस पर असर डालता है. ज़रूरत होने पर ही इसका इस्तेमाल करें. |
api_generating_plugins
JavaPluginData JavaPluginInfo.api_generating_pluginsइस टारगेट के मुताबिक तय या एक्सपोर्ट किए गए एपीआई जनरेट करने वाले प्लगिन के बारे में डेटा दिखाता है.
ये एनोटेशन प्रोसेसर, अपने हेडर जार (जिसमें मेथड सिग्नेचर होते हैं) बनाने से पहले, Java टारगेट पर लागू किए जाते हैं. अगर कोई एपीआई प्लगिन मौजूद नहीं है, तो सोर्स से हेडर जार जनरेट होते हैं. इससे अहम पाथ कम हो जाता है.
api_generating_plugins
, plugins
का सबसेट है.
java_outputs
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) का इस्तेमाल करें. यह स्ट्रक्चर के अलावा, दूसरी वैल्यू के लिए काम करता है और स्ट्रक्चर फ़ील्ड के नेमस्पेस को खराब नहीं करता.
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) का इस्तेमाल करें.