फ़िलहाल, सिर्फ़ एनोटेशन प्रोसेसर के तौर पर प्लगिन काम करते हैं.
सदस्य
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_outputs
list JavaPluginInfo.java_outputs
प्लगिन
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) का इस्तेमाल करें.