JavaInfo

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

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

JavaInfo

JavaInfo JavaInfo(output_jar, compile_jar, source_jar=None, compile_jdeps=None, generated_class_jar=None, generated_source_jar=None, native_headers_jar=None, manifest_proto=None, neverlink=False, deps=[], runtime_deps=[], exports=[], exported_plugins=[], jdeps=None, native_libraries=[])

JavaInfo कंस्ट्रक्टर.

पैरामीटर

पैरामीटर ब्यौरा
output_jar ज़रूरी है
कंपाइलेशन की वजह से बनाया गया जार, जैसे कि javac, scalac वगैरह.
compile_jar File; or None; ज़रूरी है
ऐसा जार जिसे output_jar के बजाय, कंपाइल-टाइम डिपेंडेंसी के तौर पर जोड़ा जाता है. आम तौर पर, यह run_ijar का बनाया इजार है. अगर आप i प्लैटफ़ॉर्म का इस्तेमाल नहीं कर सकते, तो इसके बजाय stamp_ijar के आउटपुट का इस्तेमाल करें. अगर आपको इनमें से किसी भी सुविधा का इस्तेमाल नहीं करना है, तो output_jar को आसानी से पास किया जा सकता है. ऐसे कुछ खास मामले हैं जिनमें इस पैरामीटर को None पर सेट किया जा सकता है. जैसे, संसाधनों वाले जार को जोड़ना या java_binary जैसे टर्मिनल नियम में इस्तेमाल करना.
source_jar File; or None; डिफ़ॉल्ट = कोई नहीं
आउटपुट जार बनाने के लिए इस्तेमाल किया गया सोर्स जार. इस सोर्स जार को बनाने के लिए pack_sources का इस्तेमाल करें.
compile_jdeps File; or None; डिफ़ॉल्ट = कोई नहीं
JavaCompileAction से इस्तेमाल की जाने वाली, कंपाइल टाइम डिपेंडेंसी के बारे में जानकारी jdeps. यह एक बाइनरी प्रोटो होना चाहिए, जिसे Bazel के साथ शामिल deps.proto Protobuf का इस्तेमाल करके एन्कोड किया गया हो. उपलब्ध होने पर, यह फ़ाइल आम तौर पर हेडर कंपाइलर से बनाई जाती है.
generated_class_jar File; or None; डिफ़ॉल्ट = कोई नहीं
एक जार फ़ाइल, जिसमें जानकारी देने की प्रोसेस के दौरान जनरेट किए गए सोर्स से इकट्ठा की गई क्लास फ़ाइलें होती हैं.
generated_source_jar File; or None; डिफ़ॉल्ट = कोई नहीं
वह सोर्स जार जो जानकारी को प्रोसेस करने के बाद बनाया गया था.
native_headers_jar File; or None; डिफ़ॉल्ट = कोई नहीं
मूल तरीके को लागू करने के साथ काम करने वाली CC हेडर फ़ाइलें वाला जार (आम तौर पर, javac -h का आउटपुट).
manifest_proto File; or None; डिफ़ॉल्ट = कोई नहीं
नियम के आउटपुट के लिए मेनिफ़ेस्ट की जानकारी (अगर उपलब्ध हो). यह एक बाइनरी प्रोटो होना चाहिए, जिसे Bazel के साथ शामिल Manifest.proto प्रोटोबफ़ का इस्तेमाल करके एन्कोड किया गया हो. आईडीई और अन्य टूल इस जानकारी का इस्तेमाल, बेहतर तरीके से प्रोसेसिंग के लिए कर सकते हैं.
डिफ़ॉल्ट = False
अगर सही है, तो इस लाइब्रेरी का इस्तेमाल सिर्फ़ कंपाइलेशन के लिए करें, न कि रनटाइम के लिए.
deps sequence of JavaInfos; डिफ़ॉल्ट = []
टाइम डिपेंडेंसी कंपाइल करें, जिसका इस्तेमाल आउटपुट जार बनाने के लिए किया गया था.
runtime_deps sequence of JavaInfos; डिफ़ॉल्ट = []
रनटाइम डिपेंडेंसी, जो इस लाइब्रेरी के लिए ज़रूरी है.
exports sequence of JavaInfos; डिफ़ॉल्ट = []
इस लाइब्रेरी के उपयोगकर्ताओं के लिए उपलब्ध कराई जाने वाली लाइब्रेरी. java_library.exports भी देखें.
exported_plugins sequence of JavaPluginInfos; डिफ़ॉल्ट = []
एक्सपोर्ट किए गए प्लगिन की सूची. ज़रूरी नहीं.
jdeps File; or None; डिफ़ॉल्ट = कोई नहीं
नियम के आउटपुट (अगर उपलब्ध हो) के लिए जानकारी jdeps करता है. यह एक बाइनरी प्रोटो होना चाहिए, जिसे Bazel के साथ शामिल deps.proto Protobuf का इस्तेमाल करके एन्कोड किया गया हो. उपलब्ध होने पर, यह फ़ाइल आम तौर पर कंपाइलर से बनाई जाती है. आईडीई और अन्य टूल इस जानकारी का इस्तेमाल, बेहतर तरीके से प्रोसेसिंग के लिए कर सकते हैं.
native_libraries sequence of CcInfos; डिफ़ॉल्ट = []
CC नेटिव लाइब्रेरी डिपेंडेंसी, जो इस लाइब्रेरी के लिए ज़रूरी हैं.

annotation_processing

java_annotation_processing JavaInfo.annotation_processing

इस Java/Java जैसे टारगेट पर लागू किए गए एनोटेशन प्रोसेसर के बारे में जानकारी दिखाता है.

अब सेवा में नहीं है: कृपया इसके बजाय plugins का इस्तेमाल करें. इससे, एनोटेशन प्रोसेसर के बारे में जानकारी मिलती है, ताकि टारगेट का इस्तेमाल करके लागू किए जाने वाले एनोटेशन प्रोसेसर के बारे में जानकारी मिल सके. None वापस कर सकता है.

api_generating_plugins

JavaPluginData JavaInfo.api_generating_plugins

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

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

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

compilation_info

java_compilation_info JavaInfo.compilation_info

इस Java/Java जैसे टारगेट के लिए कंपाइलेशन की जानकारी देता है. None वापस कर सकता है.

compile_jars

depset JavaInfo.compile_jars

कंपाइलेशन के समय, सीधे इस टारगेट के लिए ज़रूरी जार दिखाता है. ये इंटरफ़ेस जार (ijar या hzar), सामान्य जार या दोनों हो सकते हैं. यह इस बात पर निर्भर करता है कि नियम लागू करने के तरीके ने इंटरफ़ेस जार बनाने का विकल्प चुना है या नहीं.

full_compile_jars

depset JavaInfo.full_compile_jars

सीधे इस टारगेट के लिए ज़रूरी, सामान्य, पूरा कंपाइल टाइम जार दिखाता है. वे
  • इंटरफ़ेस के संबंधित सामान्य Jars को JavaInfo.compile_jars से दिखाता है
  • JavaInfo.compile_jars से सामान्य (फ़ुल) जार लौटाए गए

ध्यान दें: JavaInfo.compile_jars, इंटरफ़ेस Jars और सामान्य Jars के बीच की वैल्यू दिखा सकता है.

इस तरीके का इस्तेमाल सिर्फ़ तभी करें, जब इंटरफ़ेस जार आपके नियम सेट (जैसे, कुछ स्केला टारगेट) के साथ काम न करते हों. अगर आप सिर्फ़-जावा टारगेट के साथ काम कर रहे हैं, तो बेहतर होगा कि आप JavaInfo.compile_jars

java_outputs

list JavaInfo.java_outputs

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

module_flags_info

JavaModuleFlagsProvider JavaInfo.module_flags_info

Java मॉड्यूल फ़्लैग कॉन्फ़िगरेशन दिखाता है.

आउटपुट

java_output_jars JavaInfo.outputs

इस Java/Java जैसे टारगेट के आउटपुट की जानकारी दिखाता है. अब सेवा में नहीं है: java_exports का इस्तेमाल करें. None वापस कर सकता है.

प्लगिन

JavaPluginData JavaInfo.plugins

यह फ़ंक्शन, उन सभी प्लगिन का डेटा दिखाता है जिन्हें इस्तेमाल करने वाले टारगेट को लागू करना चाहिए.

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

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

runtime_output_jars

sequence JavaInfo.runtime_output_jars

इस Java/Java जैसे टारगेट से बनाए गए रनटाइम जार की सूची दिखाता है.

source_jars

sequence JavaInfo.source_jars

यह फ़ंक्शन, टारगेट की सभी सोर्स फ़ाइलों (इसमें एनोटेशन से जनरेट हुई फ़ाइलें भी शामिल हैं) के साथ Jars की सूची दिखाता है. इसमें, ट्रांज़िटिव डिपेंडेंसी के सोर्स शामिल नहीं होते.

to_json

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

transitive_compile_time_jars

depset JavaInfo.transitive_compile_time_jars

टारगेट बनाने के लिए ज़रूरी जार का ट्रांज़िटिव सेट दिखाता है.

transitive_deps

depset JavaInfo.transitive_deps

अब सेवा में नहीं है: इसके बजाय, कृपया JavaInfo.transitive_compile_time_jars का इस्तेमाल करें. यह वही वैल्यू दिखाता है.

transitive_native_libraries

depset JavaInfo.transitive_native_libraries

टारगेट के लिए ज़रूरी CC नेटिव लाइब्रेरी का ट्रांज़िटिव सेट दिखाता है.

transitive_runtime_deps

depset JavaInfo.transitive_runtime_deps

अब सेवा में नहीं है: इसके बजाय, कृपया JavaInfo.transitive_runtime_jars का इस्तेमाल करें. यह वही वैल्यू दिखाता है

transitive_runtime_jars

depset JavaInfo.transitive_runtime_jars

टारगेट के रनटाइम क्लासपाथ के लिए ज़रूरी, Jars का कोई ट्रांज़िटिव सेट दिखाता है.

transitive_source_jars

depset JavaInfo.transitive_source_jars

वे जार दिखाता है जिनमें मौजूदा टारगेट की सोर्स फ़ाइलें और उसकी सभी ट्रांज़िटिव डिपेंडेंसी होती हैं.