तारीख सेव करें: BazelCon 2023, 24 से 25 अक्टूबर तक Google म्यूनिख में होगा! ज़्यादा जानें

JavaPluginInfo

समस्या की शिकायत करें सोर्स देखें

सेवा देने वाली कंपनी, Java प्लग इन के बारे में जानकारी इकट्ठा कर रही है.

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

पैसे चुकाकर बने सदस्य

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) का इस्तेमाल करें.