डेटा स्टोर करने की स्थानीय जगह के नियम

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ये फ़ंक्शन, @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_file और build_file_content में से किसी एक की जानकारी देना ज़रूरी है.

इस लेबल से जोड़ी गई फ़ाइल का नाम BUILD होना ज़रूरी नहीं है. हालांकि, ऐसा किया जा सकता है. BUILD.new-repo-name जैसा कोई नाम, असल BUILD फ़ाइलों से इसे अलग करने के लिए अच्छा काम कर सकता है.

build_file_content स्ट्रिंग; ज़रूरी नहीं

इस रिपॉज़िटरी के लिए बनाई जाने वाली BUILD फ़ाइल का कॉन्टेंट.

build_file और build_file_content में से किसी एक की जानकारी देना ज़रूरी है.

path स्ट्रिंग; ज़रूरी है

उस डायरेक्ट्री का पाथ जिसे रिपॉज़िटरी के तौर पर उपलब्ध कराना है.

पाथ, वर्कस्पेस रूट के हिसाब से ऐब्सलूट या रिलेटिव हो सकता है.

repo_mapping डिकशनरी: स्ट्रिंग -> स्ट्रिंग; ज़रूरी है

लोकल डेटा स्टोर करने की जगह के नाम से ग्लोबल डेटा स्टोर करने की जगह के नाम की डिक्शनरी. इससे, इस रिपॉज़िटरी की डिपेंडेंसी के लिए, वर्कस्पेस डिपेंडेंसी रिज़ॉल्यूशन को कंट्रोल किया जा सकता है.

उदाहरण के लिए, "@foo": "@bar" वाली एंट्री से पता चलता है कि जब भी यह रिपॉज़िटरी, `@foo` पर निर्भर हो (जैसे, `@foo//some:target` पर निर्भरता), तो उसे ग्लोबल तौर पर बताए गए `@bar` (`@bar//some:target`) में उस डिपेंडेंसी को हल करना चाहिए.