Bazel là một công cụ xây dựng nhanh, chính xác và có thể mở rộng với tính năng kiểm thử tích hợp hỗ trợ nhiều ngôn ngữ, kho lưu trữ và nền tảng trong một hệ sinh thái hàng đầu trong ngành.
Bazel có tốc độ nhanh
Bazel biết chính xác những tệp đầu vào mà mỗi lệnh bản dựng cần, tránh làm những việc không cần thiết bằng cách chỉ chạy lại khi nhóm tệp đầu vào thay đổi giữa các bản dựng. Công cụ này chạy các lệnh bản dựng với mức độ song song nhiều nhất có thể, trong cùng một máy tính hoặc trên các nút bản dựng từ xa. Nếu cấu trúc của bản dựng cho phép, thì bản dựng có thể chạy hàng nghìn lệnh bản dựng hoặc kiểm thử cùng một lúc.
Tính năng này được hỗ trợ bởi nhiều lớp lưu vào bộ nhớ đệm, trong bộ nhớ, trên ổ đĩa và trên trang trại bản dựng từ xa (nếu có). Tại Google, chúng tôi thường đạt được tỷ lệ truy cập vào bộ nhớ đệm trên 99%.
Bazel là chính xác
Bazel đảm bảo rằng các tệp nhị phân của bạn chỉ được tạo từ mã nguồn của riêng bạn. Các thao tác của Bazel chạy trong các hộp cát riêng lẻ và Bazel theo dõi mọi tệp đầu vào của bản dựng, chỉ và luôn chạy lại các lệnh bản dựng khi cần. Điều này giúp các tệp nhị phân của bạn luôn được cập nhật để cùng một mã nguồn luôn tạo ra cùng một tệp nhị phân, từng bit một.
Tạm biệt các lệnh gọi make clean
vô tận và việc theo đuổi các lỗi ma thực sự đã được giải quyết trong mã nguồn chưa bao giờ được tạo.
Bazel có thể mở rộng
Khai thác toàn bộ sức mạnh của Bazel bằng cách viết các quy tắc và macro của riêng bạn để tuỳ chỉnh Bazel cho nhu cầu cụ thể của bạn trên nhiều dự án.
Các quy tắc Bazel được viết bằng Starlark, một ngôn ngữ lập trình nội bộ của chúng tôi, là một tập hợp con của Python. Starlark giúp hầu hết nhà phát triển có thể viết quy tắc, đồng thời tạo các quy tắc có thể sử dụng trên toàn hệ sinh thái.
Kiểm thử tích hợp
Trình chạy kiểm thử tích hợp của Bazel chỉ biết và chạy những chương trình kiểm thử cần chạy lại, sử dụng tính năng thực thi từ xa (nếu có) để chạy song song các chương trình kiểm thử đó. Phát hiện sớm các lỗi lặp lại bằng cách sử dụng tính năng thực thi từ xa để nhanh chóng chạy một kiểm thử hàng nghìn lần.
Bazel cung cấp các cơ sở để tải kết quả kiểm thử lên một vị trí trung tâm, nhờ đó tạo điều kiện cho việc trao đổi hiệu quả về kết quả kiểm thử, cho dù đó là trên CI hay do các nhà phát triển cá nhân thực hiện.
Hỗ trợ nhiều ngôn ngữ
Bazel hỗ trợ nhiều ngôn ngữ lập trình phổ biến, bao gồm C++, Java, Kotlin, Python, Go và Rust. Bạn có thể tạo nhiều tệp nhị phân (ví dụ: phần phụ trợ, giao diện người dùng web và ứng dụng di động) trong cùng một lệnh gọi Bazel mà không bị ràng buộc bởi công cụ bản dựng theo ngôn ngữ.
Hỗ trợ nhiều kho lưu trữ
Bazel có thể thu thập mã nguồn từ nhiều vị trí: bạn không cần phải bán phần phụ thuộc (nhưng bạn có thể!), thay vào đó, bạn có thể trỏ Bazel đến vị trí của mã nguồn hoặc cấu phần phần mềm tạo sẵn (ví dụ: kho lưu trữ git hoặc Maven Central) và công cụ này sẽ xử lý phần còn lại.
Hỗ trợ nhiều nền tảng
Bazel có thể đồng thời tạo dự án cho nhiều nền tảng, bao gồm Linux, macOS, Windows và Android. Công cụ này cũng cung cấp các tính năng biên dịch chéo mạnh mẽ để tạo mã cho một nền tảng trong khi chạy bản dựng trên một nền tảng khác.
Hệ sinh thái rộng
Các nhà lãnh đạo trong ngành yêu thích Bazel, xây dựng một cộng đồng lớn các nhà phát triển sử dụng và đóng góp cho Bazel. Tìm công cụ, dịch vụ và tài liệu, bao gồm cả dịch vụ tư vấn và SaaS mà Bazel có thể sử dụng. Khám phá các tiện ích như hỗ trợ ngôn ngữ lập trình trong kho lưu trữ phần mềm nguồn mở của chúng tôi.