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

समस्या की शिकायत करें सोर्स देखें

ये फ़ंक्शन @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)

एक ऐसी लोकल डायरेक्ट्री बनाता है जिसमें पहले से ही Basel की फ़ाइलें रेपो के तौर पर उपलब्ध होती हैं. इस डायरेक्ट्री में Basel 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)

एक ऐसी लोकल डायरेक्ट्री बनाता है जिसमें रैपो के तौर पर उपलब्ध, बैजल फ़ाइलें नहीं होती हैं. इस डायरेक्ट्री में, Basel BUILD फ़ाइलें या रेपो सीमा वाली फ़ाइल शामिल नहीं होनी चाहिए. ये फ़ाइलें, इस रेपो नियम के तहत बनाई जाएंगी. अगर डायरेक्ट्री में पहले से बैकेल फ़ाइलें हैं, तो <a href="#local_repository"><code>local_repository</code></a> का इस्तेमाल करें.

विशेषताएं

name नाम; ज़रूरी है

डेटा स्टोर करने की इस जगह के लिए यूनीक नाम.

build_file लेबल; ज़रूरी नहीं

इस डेटा स्टोर करने की जगह के लिए, बिल्ड फ़ाइल के तौर पर इस्तेमाल की जाने वाली फ़ाइल.

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

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

build_file_content स्ट्रिंग; वैकल्पिक

इस डेटा स्टोर करने की जगह के लिए बनाई जाने वाली बिल्ड फ़ाइल का कॉन्टेंट.

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

path स्ट्रिंग; आवश्यक है

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

पाथ पूरा या फ़ाइल फ़ोल्डर के रूट से मिलता-जुलता हो सकता है.

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

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

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