ये फ़ंक्शन, @bazel_tools//tools/build_defs/repo:local.bzl
से लोड किए जा सकते हैं.
लोकल फ़ाइल सिस्टम में मौजूद डायरेक्ट्री को रिपॉज़िटरी के तौर पर उपलब्ध कराने के नियम.
सेटअप
किसी मॉड्यूल एक्सटेंशन में इन नियमों का इस्तेमाल करने के लिए, उन्हें अपनी .bzl फ़ाइल में लोड करें और फिर अपने एक्सटेंशन के लागू करने वाले फ़ंक्शन से इन्हें कॉल करें. उदाहरण के लिए, local_repository
का इस्तेमाल करने के लिए:
load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
def _my_extension_impl(mctx):
local_repository(name = "foo", path = "foo")
my_extension = module_extension(implementation = _my_extension_impl)
इसके अलावा, रेपो नियमों को अपनी MODULE.baकोई फ़ाइल में सेव करने के लिए, use_repo_rule
का इस्तेमाल किया जा सकता है:
local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")
local_repository
local_repository(name, path, repo_mapping)
यह एक लोकल डायरेक्ट्री बनाता है, जिसमें पहले से ही Bazel फ़ाइलें मौजूद होती हैं. ये फ़ाइलें, रिपॉज़िटरी के तौर पर उपलब्ध होती हैं. इस डायरेक्ट्री में, Bazel BUILD फ़ाइलें और पहले से ही एक रिपॉज़िटरी बाउंड्री फ़ाइल होनी चाहिए. अगर इसमें ये फ़ाइलें नहीं हैं, तो <a href="#new_local_repository"><code>new_local_repository</code></a> का इस्तेमाल करें.
विशेषताएं
name |
नाम; यह ज़रूरी है
इस रिपॉज़िटरी के लिए कोई यूनीक नाम. |
path |
स्ट्रिंग; ज़रूरी है
डायरेक्ट्री के लिए पाथ, जिसे रेपो के तौर पर उपलब्ध कराना है. पाथ निरपेक्ष या फ़ाइल फ़ोल्डर के रूट से मिलता-जुलता हो सकता है. |
repo_mapping |
शब्दकोश: स्ट्रिंग -> स्ट्रिंग; ज़रूरी है
लोकल रिपॉज़िटरी के नाम से लेकर ग्लोबल रिपॉज़िटरी के नाम तक का डिक्शनरी. इससे, इस रिपॉज़िटरी की डिपेंडेंसी के लिए, वर्कस्पेस डिपेंडेंसी रिज़ॉल्यूशन को कंट्रोल किया जा सकता है. उदाहरण के लिए, "@foo": "@bar" वाली एंट्री से पता चलता है कि जब भी यह रिपॉज़िटरी, `@foo` पर निर्भर हो (जैसे, `@foo//some:target` पर निर्भरता), तो उसे ग्लोबल तौर पर बताए गए `@bar` (`@bar//some:target`) में उस डिपेंडेंसी को हल करना चाहिए. |
new_local_repository
new_local_repository(name, build_file, build_file_content, path, repo_mapping)
एक लोकल डायरेक्ट्री बनाता है, जिसमें Bazel फ़ाइलें नहीं होती हैं. ये फ़ाइलें, रिपॉज़िटरी के तौर पर उपलब्ध होती हैं. इस डायरेक्ट्री में, Basel BUILD फ़ाइलें या रेपो सीमा वाली फ़ाइल शामिल नहीं होनी चाहिए. ये फ़ाइलें, इस रेपो नियम के तहत बनाई जाएंगी. अगर डायरेक्ट्री में पहले से Basel फ़ाइलें हैं, तो इसके बजाय <a href="#local_repository"><code>local_repository</code></a> का इस्तेमाल करें.
विशेषताएं
name |
नाम; यह ज़रूरी है
इस रिपॉज़िटरी के लिए कोई यूनीक नाम. |
build_file |
लेबल; ज़रूरी नहीं
इस रिपॉज़िटरी के लिए, BUILD फ़ाइल के तौर पर इस्तेमाल की जाने वाली फ़ाइल.
इस लेबल से जोड़ी गई फ़ाइल का नाम BUILD होना ज़रूरी नहीं है. हालांकि, ऐसा किया जा सकता है. |
build_file_content |
स्ट्रिंग; ज़रूरी नहीं
इस रिपॉज़िटरी के लिए बनाई जाने वाली BUILD फ़ाइल का कॉन्टेंट.
|
path |
स्ट्रिंग; आवश्यक है
डायरेक्ट्री के लिए पाथ, जिसे रेपो के तौर पर उपलब्ध कराना है. पाथ, वर्कस्पेस रूट के हिसाब से ऐब्सलूट या रिलेटिव हो सकता है. |
repo_mapping |
डिकशनरी: स्ट्रिंग -> स्ट्रिंग; ज़रूरी है
लोकल डेटा स्टोर करने की जगह के नाम से ग्लोबल डेटा स्टोर करने की जगह के नाम की डिक्शनरी. इससे, इस रिपॉज़िटरी की डिपेंडेंसी के लिए, वर्कस्पेस डिपेंडेंसी रिज़ॉल्यूशन को कंट्रोल किया जा सकता है. उदाहरण के लिए, "@foo": "@bar" वाली एंट्री से पता चलता है कि जब भी यह रिपॉज़िटरी, `@foo` पर निर्भर हो, तो उसे ग्लोबल तौर पर बताई गई `@bar` (`@bar//some:target`) में उस डिपेंडेंसी को हल करना चाहिए. जैसे, `@foo//some:target` पर निर्भरता. |