විවෘත එකලස් කිරීමේ මෙවලම් නිකුත් කිරීම , ගූගල් ඉංජිනේරුවන් විසින් සංවර්ධනය කරන ලද අතර සමාගමේ අභ්යන්තර ව්යාපෘති බොහොමයක් ගොඩනැගීමට භාවිතා කරන ලදී. Bazel ව්යාපෘති ගොඩනැගීම් හසුරුවයි, අවශ්ය සම්පාදක සහ පරීක්ෂණ ක්රියාත්මක කරයි. එය Java, C++, Objective-C, Python, Rust, Go සහ තවත් බොහෝ භාෂාවලින් කේත ගොඩනැගීම සහ පරීක්ෂා කිරීම මෙන්ම ජංගම යෙදුම් ගොඩනැගීම සඳහා සහාය වේ. Android සහ iOS. ව්යාපෘති කේතය Apache 2.0 යටතේ බලපත්ර ලබා ඇත.
සැලකිය යුතු අනුවාද වෙනසක් වන්නේ පසුගාමී අනුකූලතාව බිඳ දමන වෙනස්කම් එකතු කිරීමයි. Bazel 2.0 සමඟින් ආරම්භ වන විට, පහත මාතයන් පෙරනිමියෙන් සක්රීය කර ඇත: "--incompatible_remap_main_repo" (නම අනුව සහ @ සමඟ යොමු කිරීම් දැන් එකම ගබඩාවට යොමු වේ), "--incompatible_disallow_dict_lookup" (හැෂ් කළ නොහැකි යතුරු භාවිතය),
"--incompatible_remove_native_maven_jar" සහ "--incompatible_prohibit_aapt1". අනෙකුත් වෙනස්කම් අතරට:
- කණ්ඩායම තුළ "proto" ප්රතිදාන ආකෘතියේ (--output=proto) නව අනුවාදයක් සඳහා පර්යේෂණාත්මක සහාය එක් කර ඇත, එය දැනට පෙරනිමියෙන් අක්රිය කර ඇත (--incompatible_proto_output_v2) සහ දත්තවල වඩාත් සංයුක්ත නිරූපණයක් සපයයි;
- PlatformConfiguration.enabled_toolchain_types ක්ෂේත්රය ඉවත් කිරීම සඳහා "--incompatible_remove_enabled_toolchain_types" ධජය එක් කරන ලදී;
- මාර්ග පුළුල් කිරීමේදී රවුම් සංකේතාත්මක සබැඳි භාවිතා කරන පැකේජ පැටවීමට එරෙහිව ආරක්ෂාව එකතු කරන ලදී;
- බාහිර gRPC හැඹිලි සමඟ "--disk_cache" ධජය භාවිතා කිරීමේ හැකියාව ක්රියාත්මක කරන ලදී;
- පැකේජයේ Debian සහ ද්විමය ස්ථාපකයේ ~/.bazelversion ගොනු සහ $USE_BAZEL_VERSION පරිසර විචල්යය හසුරුවන වැඩිදියුණු කළ ස්ථරයක් ඇතුළත් වේ;
- මැනිෆෙස්ට් සහිත ධාවන ගොනු අවලංගු කිරීමට සූදානම් වීමක් ලෙස, "--experimental_skip_runfiles_manifests" ධජය එක් කර ඇත.
Bazel හි සුවිශේෂී ලක්ෂණ අතර, එකලස් කිරීමේ ක්රියාවලියේ අධික වේගය, විශ්වසනීයත්වය සහ පුනරාවර්තනය වේ. ඉහළ ගොඩනැගීමේ වේගයක් ලබා ගැනීම සඳහා, Bazel ගොඩනැගීමේ ක්රියාවලිය සඳහා හැඹිලි සහ සමාන්තරකරණ ක්රම සක්රීයව භාවිතා කරයි. BUILD ගොනු සියලු පරායත්තයන් සම්පූර්ණයෙන් නිර්වචනය කළ යුතු අතර, වෙනස්කම් සිදු කිරීමෙන් පසුව (වෙනස් කළ ගොනු පමණක් නැවත ගොඩනඟා ඇත) සහ එකලස් කිරීමේ ක්රියාවලිය සමාන්තරගත කිරීමෙන් පසු සංරචක නැවත ගොඩනැගීමට තීරණ ගනු ලැබේ. මෙවලම් මඟින් නැවත නැවතත් එකලස් කිරීම සහතික කරයි, i.e. සංවර්ධකයාගේ යන්ත්රය මත ව්යාපෘතියක් ගොඩනැගීමේ ප්රතිඵලය අඛණ්ඩ ඒකාබද්ධතා සේවාදායක වැනි තෙවන පාර්ශවීය පද්ධති මත ගොඩනැගීමට සම්පූර්ණයෙන්ම සමාන වේ.
Make සහ Ninja මෙන් නොව, Bazel එකලස් කිරීමේ නීති ගොඩනැගීම සඳහා ඉහළ මට්ටමේ ප්රවේශයක් භාවිතා කරයි, එහිදී, ගොඩනගනු ලබන ලිපිගොනු වලට විධාන බන්ධනය කිරීම අර්ථ දැක්වීම වෙනුවට, “ක්රියාත්මක කළ හැකි ගොනුවක් තැනීම වැනි වඩා වියුක්ත සූදානම් කළ කුට්ටි භාවිතා කරයි. C++”, “C++ හි පුස්තකාලයක් තැනීම” හෝ “C++ සඳහා පරීක්ෂණයක් ක්රියාත්මක කිරීම”, මෙන්ම ඉලක්ක හඳුනා ගැනීම සහ වේදිකා තැනීම. BUILD පෙළ ගොනුව තුළ, ව්යාපෘති සංරචක තනි ගොනු සහ සම්පාදක ඇමතුම් විධාන මට්ටමින් විස්තර නොකර පුස්තකාල, ක්රියාත්මක කළ හැකි ගොනු සහ පරීක්ෂණ සමූහයක් ලෙස විස්තර කෙරේ. දිගු සම්බන්ධ කිරීම සඳහා යාන්ත්රණය හරහා අතිරේක ක්රියාකාරිත්වය ක්රියාත්මක වේ.
විවිධ වේදිකා සහ ගෘහ නිර්මාණ ශිල්ප සඳහා තනි ගොඩනැගීමේ ගොනු භාවිතය සඳහා සහය දක්වයි. උදාහරණයක් ලෙස, සේවාදායක පද්ධතිය සහ ජංගම උපාංගය යන දෙකටම තනි ගොඩනැගීමේ ගොනුවක් නොවෙනස්ව භාවිතා කළ හැකිය. ගොඩනැගීමේ පද්ධතිය මුල සිටම නිර්මාණය කර ඇත්තේ ඉතා විශාල ව්යාපෘති සහ බහු ක්රමලේඛන භාෂාවලින් කේත අඩංගු ව්යාපෘති ඇතුළුව, පුළුල් පරීක්ෂණ අවශ්ය වන සහ බහු වේදිකා සඳහා ගොඩනගා ඇති Google ව්යාපෘති ප්රශස්ත ලෙස ගොඩනැගීම සඳහා ය.
මූලාශ්රය: opennet.ru
