Bazel เป็นเครื่องมือสร้างและทดสอบแบบโอเพนซอร์สที่คล้ายกับ Make, Maven และ Gradle โดยใช้ภาษาการสร้างระดับสูงที่มนุษย์อ่านได้ Bazel รองรับโปรเจ็กต์ในหลายภาษาและสร้างเอาต์พุตสำหรับหลายแพลตฟอร์ม Bazel รองรับฐานโค้ดขนาดใหญ่ในที่เก็บหลายแห่งและผู้ใช้จำนวนมาก
ข้อดี
Bazel มีข้อดีดังต่อไปนี้
ภาษาการสร้างระดับสูง Bazel ใช้ภาษาที่เป็นนามธรรมและมนุษย์อ่านได้เพื่ออธิบายพร็อพเพอร์ตี้การสร้างของโปรเจ็กต์ในระดับความหมายสูง Bazel แตกต่างจากเครื่องมืออื่นๆ ตรงที่ทำงานกับ แนวคิด ของไลบรารี ไบนารี สคริปต์ และชุดข้อมูล ซึ่งช่วยลดความซับซ้อนในการเขียนการเรียกใช้เครื่องมือแต่ละรายการ เช่น คอมไพเลอร์และลิงเกอร์
Bazel รวดเร็วและเชื่อถือได้ Bazel แคชงานทั้งหมดที่ทำไว้ก่อนหน้านี้และติดตามการเปลี่ยนแปลงทั้งเนื้อหาไฟล์และคำสั่งการสร้าง ด้วยวิธีนี้ Bazel จะทราบว่าเมื่อใดที่ต้องสร้างใหม่และสร้างใหม่เฉพาะสิ่งที่เปลี่ยนแปลง คุณสามารถตั้งค่าโปรเจ็กต์ให้สร้างแบบขนานสูง และแบบเพิ่มทีละส่วนเพื่อเพิ่มความเร็วในการสร้าง
Bazel ทำงานได้หลายแพลตฟอร์ม Bazel ทำงานบน Linux, macOS และ Windows Bazel สามารถสร้างไบนารีและแพ็กเกจที่ใช้งานได้สำหรับหลายแพลตฟอร์ม รวมถึงเดสก์ท็อป เซิร์ฟเวอร์ และอุปกรณ์เคลื่อนที่ จากโปรเจ็กต์เดียวกัน
Bazel ปรับขนาดได้ Bazel รักษาความคล่องตัวไว้ได้ขณะจัดการการสร้างด้วยไฟล์ต้นฉบับ 100,000 รายการขึ้นไป โดยทำงานร่วมกับที่เก็บหลายแห่งและฐานผู้ใช้หลายหมื่นราย
Bazel ขยายได้ รองรับหลายภาษา และคุณสามารถขยาย Bazel เพื่อรองรับภาษาหรือ เฟรมเวิร์กอื่นๆ ได้
การใช้ Bazel
โดยปกติแล้วคุณจะทำดังนี้เพื่อสร้างหรือทดสอบโปรเจ็กต์ด้วย Bazel
ตั้งค่า Bazel ดาวน์โหลดและติดตั้ง Bazel
ตั้งค่าพื้นที่ทำงานของโปรเจ็กต์ ซึ่งเป็น ไดเรกทอรีที่ Bazel ค้นหาอินพุตการสร้างและไฟล์
BUILDรวมถึงที่ จัดเก็บเอาต์พุตการสร้างเขียนไฟล์
BUILDซึ่งจะบอก Bazel ว่าต้องสร้างอะไรและสร้างอย่างไรคุณเขียนไฟล์
BUILDโดยประกาศเป้าหมายการสร้างโดยใช้ Starlark ซึ่งเป็นภาษาเฉพาะของโดเมน (ดูตัวอย่าง ที่นี่)เป้าหมายการสร้างจะระบุชุดอาร์ติแฟกต์อินพุตที่ Bazel จะสร้าง รวมถึงการขึ้นต่อกัน กฎการสร้างที่ Bazel จะใช้สร้าง และตัวเลือกที่กำหนดค่ากฎการสร้าง
กฎการสร้างจะระบุเครื่องมือการสร้างที่ Bazel จะใช้ เช่น คอมไพเลอร์และลิงเกอร์ รวมถึงการกำหนดค่า Bazel มาพร้อมกับกฎการสร้างจำนวนมากที่ครอบคลุมอาร์ติแฟกต์ประเภทที่พบบ่อยที่สุดในภาษาที่รองรับบนแพลตฟอร์มที่รองรับ
เรียกใช้ Bazel จาก บรรทัดคำสั่ง Bazel จะวางเอาต์พุตไว้ในพื้นที่ทำงาน
นอกจากการสร้างแล้ว คุณยังใช้ Bazel เพื่อเรียกใช้ การทดสอบ และ ค้นหาการสร้าง เพื่อติดตามการขึ้นต่อกันในโค้ดได้ด้วย
กระบวนการสร้าง Bazel
เมื่อเรียกใช้การสร้างหรือการทดสอบ Bazel จะทำดังนี้
โหลด ไฟล์
BUILDที่เกี่ยวข้องกับเป้าหมายวิเคราะห์ อินพุตและ การขึ้นต่อกัน ใช้กฎการสร้างที่ระบุ และสร้างกราฟการดำเนินการ
ดำเนินการ การดำเนินการสร้างกับอินพุตจนกว่าจะสร้างเอาต์พุตการสร้างขั้นสุดท้าย
เนื่องจากระบบแคชงานการสร้างทั้งหมดที่ทำไว้ก่อนหน้านี้ Bazel จึงระบุและนำอาร์ติแฟกต์ที่แคชไว้กลับมาใช้ซ้ำได้ รวมถึงสร้างใหม่หรือทดสอบใหม่เฉพาะสิ่งที่เปลี่ยนแปลง คุณสามารถตั้งค่า Bazel ให้เรียกใช้การสร้างและการทดสอบ แบบปิดผนึกผ่านการแซนด์บ็อกซ์เพื่อบังคับใช้ความถูกต้องเพิ่มเติม ลดความคลาดเคลื่อน และเพิ่มความสามารถในการทำซ้ำให้ได้มากที่สุด
กราฟการดำเนินการ
กราฟการดำเนินการแสดงอาร์ติแฟกต์การสร้าง ความสัมพันธ์ระหว่างอาร์ติแฟกต์ และการดำเนินการสร้างที่ Bazel จะดำเนินการ กราฟนี้ช่วยให้ Bazel สามารถ ติดตามการเปลี่ยนแปลง เนื้อหาไฟล์ รวมถึงการเปลี่ยนแปลงการดำเนินการ เช่น คำสั่งการสร้างหรือการทดสอบ และ ทราบว่ามีการสร้างอะไรไว้ก่อนหน้านี้ นอกจากนี้ กราฟยังช่วยให้คุณ ติดตามการขึ้นต่อกันในโค้ดได้อย่างง่ายดาย
บทแนะนำสำหรับการเริ่มต้นใช้งาน
หากต้องการเริ่มต้นใช้งาน Bazel โปรดดู การเริ่มต้นใช้งาน หรือข้าม ไปที่บทแนะนำ Bazel โดยตรง