Bazel یک ابزار ساخت و تست منبع باز است که شبیه به Make، Maven و Gradle است. از زبان ساخت سطح بالا و قابل خواندن برای انسان استفاده می کند. Bazel از پروژهها به زبانهای مختلف پشتیبانی میکند و خروجیهایی را برای چندین پلتفرم ایجاد میکند. Bazel از پایگاه های کد بزرگ در چندین مخزن و تعداد زیادی کاربر پشتیبانی می کند.
فواید
Bazel مزایای زیر را ارائه می دهد:
زبان ساخت سطح بالا. Bazel از یک زبان انتزاعی و قابل خواندن برای انسان برای توصیف ویژگی های ساخت پروژه شما در سطح معنایی بالا استفاده می کند. برخلاف سایر ابزارها، Bazel بر روی مفاهیم کتابخانهها، باینریها، اسکریپتها و مجموعههای داده عمل میکند و شما را از پیچیدگی نوشتن فراخوانهای فردی به ابزارهایی مانند کامپایلر و لینککننده محافظت میکند.
Bazel سریع و قابل اعتماد است. Bazel تمام کارهای انجام شده قبلی را در حافظه پنهان ذخیره می کند و تغییرات محتوای فایل و دستورات ساخت را ردیابی می کند. به این ترتیب، بازل می داند که چه زمانی چیزی نیاز به بازسازی دارد و فقط آن را بازسازی می کند. برای افزایش سرعت ساختهای خود، میتوانید پروژه خود را برای ساخت به صورت موازی و افزایشی تنظیم کنید.
Bazel چند پلتفرم است. Bazel روی Linux، macOS و Windows اجرا می شود. Bazel می تواند باینری ها و بسته های قابل استقرار را برای پلتفرم های مختلف از جمله دسکتاپ، سرور و موبایل از یک پروژه بسازد.
ترازو بازل. Bazel چابکی خود را در هنگام مدیریت بیلدها با بیش از 100k فایل منبع حفظ می کند. با چندین مخزن و پایگاه کاربر در ده ها هزار کار می کند.
بازل قابل توسعه است. بسیاری از زبان ها پشتیبانی می شوند، و شما می توانید Bazel را برای پشتیبانی از هر زبان یا فریمورک دیگری گسترش دهید.
با استفاده از بازل
برای ساخت یا آزمایش یک پروژه با Bazel، معمولاً موارد زیر را انجام می دهید:
Bazel را راه اندازی کنید. بازی Bazel را دانلود و نصب کنید .
یک فضای کاری پروژه راه اندازی کنید ، که دایرکتوری است که در آن Bazel به دنبال ورودی های ساخت و فایل های
BUILD
می گردد و خروجی های ساخت را در آن ذخیره می کند.یک فایل
BUILD
بنویسید که به Bazel می گوید چه چیزی بسازد و چگونه آن را بسازد.شما فایل
BUILD
خود را با اعلام اهداف ساخت با استفاده از Starlark ، یک زبان خاص دامنه، می نویسید. (نمونه را اینجا ببینید .)هدف ساخت مجموعهای از مصنوعات ورودی را مشخص میکند که Bazel میسازد به اضافه وابستگیهای آنها، قانون ساخت Bazel برای ساخت آن و گزینههایی که قانون ساخت را پیکربندی میکنند.
یک قانون ساخت ابزارهای ساختی را که Bazel استفاده خواهد کرد، مانند کامپایلرها و لینککنندهها و تنظیمات آنها را مشخص میکند. Bazel با تعدادی از قوانین ساخت ارائه می شود که رایج ترین انواع مصنوعات را در زبان های پشتیبانی شده در سیستم عامل های پشتیبانی شده پوشش می دهد.
Bazel را از خط فرمان اجرا کنید. Bazel خروجی های شما را در فضای کاری قرار می دهد.
علاوه بر ساختن، میتوانید از Bazel برای اجرای آزمایشها و کوئری ساختن برای ردیابی وابستگیها در کدتان استفاده کنید.
فرآیند ساخت Bazel
هنگام اجرای یک ساخت یا آزمایش، Bazel کارهای زیر را انجام می دهد:
فایل های
BUILD
مربوط به هدف را بارگذاری می کند.ورودی ها و وابستگی های آنها را تجزیه و تحلیل می کند، قوانین ساخت مشخص شده را اعمال می کند و یک نمودار عمل تولید می کند.
تا زمانی که خروجی های ساخت نهایی تولید شود، اقدامات ساخت را روی ورودی ها اجرا می کند.
از آنجایی که تمام کارهای ساخت قبلی ذخیره شده است، Bazel می تواند مصنوعات ذخیره شده را شناسایی و مجدداً استفاده کند و فقط آنچه را که تغییر کرده است بازسازی یا دوباره آزمایش کند. برای اعمال بیشتر صحت، میتوانید Bazel را طوری تنظیم کنید که ساختها و آزمایشها را بهصورت هرمتیک از طریق sandboxing، به حداقل رساندن انحراف و به حداکثر رساندن تکرارپذیری اجرا کند.
نمودار اقدام
نمودار اکشن آرتیفکت های ساخت، روابط بین آنها و اکشن های ساختی را نشان می دهد که Bazel انجام خواهد داد. به لطف این نمودار، Bazel می تواند تغییرات محتوای فایل و همچنین تغییرات اعمالی مانند دستورات ساخت یا آزمایش را ردیابی کند و بداند که قبلاً چه کارهایی برای ساخت انجام شده است. این نمودار همچنین به شما امکان می دهد تا به راحتی وابستگی ها را در کد خود ردیابی کنید.
آموزش های شروع
برای شروع کار با Bazel، به شروع کار مراجعه کنید یا مستقیماً به آموزش های Bazel بروید: