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