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