ये फ़ंक्शन, @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)
इसके अलावा, use_repo_rule
की मदद से, अपनी MODULE.bazel फ़ाइल में इन repo नियमों को सीधे तौर पर कॉल किया जा सकता है:
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 फ़ाइलें नहीं होती हैं. ये फ़ाइलें, रिपॉज़िटरी के तौर पर उपलब्ध होती हैं. इस डायरेक्ट्री में Bazel BUILD फ़ाइलें या रिपॉज़िटरी की बाउंड्री फ़ाइल शामिल नहीं होनी चाहिए. ये फ़ाइलें, इस रिपॉज़िटरी नियम से बनाई जाएंगी. अगर डायरेक्ट्री में पहले से ही Bazel फ़ाइलें मौजूद हैं, तो <a href="#local_repository"><code>local_repository</code></a> का इस्तेमाल करें.
विशेषताएं
name |
नाम; यह ज़रूरी है
इस रिपॉज़िटरी के लिए कोई यूनीक नाम. |
build_file |
लेबल; ज़रूरी नहीं
इस रिपॉज़िटरी के लिए, BUILD फ़ाइल के तौर पर इस्तेमाल की जाने वाली फ़ाइल.
इस लेबल से जोड़ी गई फ़ाइल का नाम BUILD होना ज़रूरी नहीं है. हालांकि, ऐसा किया जा सकता है. |
build_file_content |
स्ट्रिंग; ज़रूरी नहीं
इस रिपॉज़िटरी के लिए बनाई जाने वाली BUILD फ़ाइल का कॉन्टेंट.
|
path |
स्ट्रिंग; ज़रूरी है
उस डायरेक्ट्री का पाथ जिसे रिपॉज़िटरी के तौर पर उपलब्ध कराना है. पाथ, वर्कस्पेस रूट के हिसाब से ऐब्सलूट या रिलेटिव हो सकता है. |
repo_mapping |
डिकशनरी: स्ट्रिंग -> स्ट्रिंग; ज़रूरी है
लोकल डेटा स्टोर करने की जगह के नाम से ग्लोबल डेटा स्टोर करने की जगह के नाम की डिक्शनरी. इससे, इस रिपॉज़िटरी की डिपेंडेंसी के लिए, वर्कस्पेस डिपेंडेंसी रिज़ॉल्यूशन को कंट्रोल किया जा सकता है. उदाहरण के लिए, "@foo": "@bar" वाली एंट्री से पता चलता है कि जब भी यह रिपॉज़िटरी, `@foo` पर निर्भर हो (जैसे, `@foo//some:target` पर निर्भरता), तो उसे ग्लोबल तौर पर बताए गए `@bar` (`@bar//some:target`) में उस डिपेंडेंसी को हल करना चाहिए. |