बेज़ेल का परिचय

किसी समस्या की शिकायत करें सोर्स देखें Nightly 8.1 · 8.0 · 7.5 · 7.4 · 7.3 · 7.2

Bazel, Make, Maven, और Gradle जैसा ही एक ओपन-सोर्स बिल्ड और टेस्ट टूल है. यह ऐसी भाषा का इस्तेमाल करता है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. Bazel, कई भाषाओं में प्रोजेक्ट बनाने की सुविधा देता है. साथ ही, यह कई प्लैटफ़ॉर्म के लिए आउटपुट बनाता है. Bazel, कई रिपॉज़िटरी में बड़े कोडबेस और ज़्यादा उपयोगकर्ताओं के साथ काम करता है.

फ़ायदे

Bazel से ये फ़ायदे मिलते हैं:

Bazel का इस्तेमाल करना

आम तौर पर, Bazel की मदद से किसी प्रोजेक्ट को बनाने या उसकी जांच करने के लिए, ये काम किए जाते हैं:

  1. Bazel सेट अप करें. Bazel डाउनलोड और इंस्टॉल करें.

  2. प्रोजेक्ट का फ़ाइल फ़ोल्डर सेट अप करें. यह एक डायरेक्ट्री होती है, जहां Bazel, बिल्ड इनपुट और BUILD फ़ाइलों को खोजता है. साथ ही, यह बिल्ड आउटपुट को सेव करती है.

  3. BUILD फ़ाइल लिखें. इससे Bazel को यह पता चलता है कि क्या बनाना है और उसे कैसे बनाना है.

    BUILD फ़ाइल लिखने के लिए, डोमेन के हिसाब से बनाई गई भाषा Starlark का इस्तेमाल करके, बिल्ड टारगेट तय किए जाते हैं. (उदाहरण के लिए, यहां देखें.)

    बिल्ड टारगेट, इनपुट आर्टफ़ैक्ट के एक सेट के साथ-साथ उनकी डिपेंडेंसी के बारे में बताता है. साथ ही, यह भी बताता है कि Bazel इसे बनाने के लिए किस बिल्ड रूल का इस्तेमाल करेगा और बिल्ड रूल को कॉन्फ़िगर करने के लिए कौनसे विकल्प उपलब्ध हैं.

    बिल्ड नियम से पता चलता है कि Bazel किन बिल्ड टूल का इस्तेमाल करेगा, जैसे कि कंपाइलर और लिंकर. साथ ही, उनके कॉन्फ़िगरेशन के बारे में भी पता चलता है. Bazel में कई बिल्ड नियम होते हैं. ये नियम, काम करने वाले प्लैटफ़ॉर्म पर काम करने वाली भाषाओं में, सबसे सामान्य आर्टफ़ैक्ट टाइप को कवर करते हैं.

  4. कमांड लाइन से Bazel चलाएं. Bazel, आपके आउटपुट को फ़ाइल फ़ोल्डर में डाल देता है.

बाइनरी बनाने के अलावा, Bazel का इस्तेमाल टेस्ट चलाने और अपने कोड में डिपेंडेंसी का पता लगाने के लिए, बाइनरी के बारे में क्वेरी करने के लिए भी किया जा सकता है.

Bazel की बिल्ड प्रोसेस

कोई बिल्ड या टेस्ट चलाते समय, Bazel ये काम करता है:

  1. टारगेट से जुड़ी BUILD फ़ाइलों को लोड करता है.

  2. इनपुट और उनकी डिपेंडेंसी का विश्लेषण करता है. साथ ही, तय किए गए बिल्ड नियम लागू करता है और कार्रवाई ग्राफ़ बनाता है.

  3. आखिरी बिल्ड आउटपुट तैयार होने तक, इनपुट पर बिल्ड ऐक्शन इस्तेमाल करता है.

पिछले सभी बिल्ड का डेटा कैश मेमोरी में सेव होता है. इसलिए, Bazel कैश मेमोरी में सेव किए गए आर्टफ़ैक्ट की पहचान कर सकता है और उनका फिर से इस्तेमाल कर सकता है. साथ ही, सिर्फ़ उन आर्टफ़ैक्ट को फिर से बिल्ड कर सकता है या उनकी फिर से जांच कर सकता है जिनमें बदलाव हुआ है. सही तरीके से काम करने के लिए, Bazel को सेट अप किया जा सकता है, ताकि सैंडबॉक्सिंग की मदद से, बिल्ड और टेस्ट को पूरी तरह से चलाया जा सके. इससे, गड़बड़ी को कम करने और फिर से चलाने की सुविधा को बढ़ाने में मदद मिलती है.

ऐक्शन ग्राफ़

ऐक्शन ग्राफ़, बिल्ड आर्टफ़ैक्ट, उनके बीच के संबंधों, और उन बिल्ड ऐक्शन को दिखाता है जिन्हें Bazel पूरा करेगा. इस ग्राफ़ की मदद से, Bazel, फ़ाइल कॉन्टेंट में हुए बदलावों के साथ-साथ, कार्रवाइयों में हुए बदलावों को भी ट्रैक कर सकता है. जैसे, बिल्ड या टेस्ट कमांड. साथ ही, यह भी पता चलता है कि पहले कौनसा बिल्ड काम किया गया था. ग्राफ़ की मदद से, अपने कोड में डिपेंडेंसी को आसानी से ट्रैक किया जा सकता है.

शुरू करने के बारे में ट्यूटोरियल

Bazel का इस्तेमाल शुरू करने के लिए, शुरू करना देखें या सीधे Bazel के ट्यूटोरियल पर जाएं: