Bản tóm tắt về cờ Bazel

Báo cáo vấn đề Xem nguồn Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Việc tìm hiểu danh sách cờ dòng lệnh mở rộng của Bazel có thể là một thách thức. Trang này tập trung vào những cờ quan trọng nhất mà bạn cần biết.

Các lựa chọn chung hữu ích

Bạn phải đặt rõ ràng các cờ sau trên dòng lệnh.

Cờ Mô tả

--config

Bạn có thể sắp xếp các cờ trong tệp .bazelrc thành các cấu hình, chẳng hạn như các cấu hình để gỡ lỗi hoặc tạo bản phát hành. Bạn có thể chọn các nhóm cấu hình khác bằng cách nhấp vào biểu tượng --config=<group>.

--keep_going

Bazel nên cố gắng hết sức để tiếp tục thực hiện quá trình tạo và kiểm thử. Theo mặc định, Bazel sẽ thất bại ngay lập tức.

--remote_download_outputs

Khi sử dụng tính năng thực thi hoặc lưu vào bộ nhớ đệm từ xa (cả trên đĩa và từ xa), bạn có thể báo hiệu cho Bazel rằng bạn muốn tải tất cả các cấu phần phần mềm bản dựng (trung gian) xuống như sau:
--remote_download_outputs=all
Theo mặc định, Bazel chỉ tải các cấu phần phần mềm cấp cao nhất xuống, chẳng hạn như tệp nhị phân cuối cùng và các cấu phần phần mềm trung gian cần thiết cho các thao tác cục bộ.

--stamp

Thêm thông tin bản dựng (người dùng, dấu thời gian) vào các tệp nhị phân.

Khám phá các vấn đề về bản dựng và kiểm thử

Các cờ sau đây có thể giúp bạn hiểu rõ hơn về lỗi khi tạo hoặc kiểm thử Bazel.

Cờ Mô tả

--announce_rc

Cho biết những cờ nào được đặt ngầm thông qua các tệp .bazelrc do người dùng xác định, do máy xác định hoặc do dự án xác định.

--auto_output_filter

Theo mặc định, Bazel cố gắng ngăn chặn nhật ký rác và chỉ in cảnh báo của trình biên dịch cũng như đầu ra gỡ lỗi Starlark cho các gói và gói con được yêu cầu trên dòng lệnh. Để tắt tất cả các bộ lọc, hãy đặt --auto_output_filter=none.

--sandbox_debug

Cho phép bạn tìm hiểu kỹ về các lỗi hộp cát. Để biết thông tin chi tiết về lý do Bazel tạo các bản dựng hộp cát theo mặc định và nội dung được đưa vào hộp cát, hãy xem tài liệu về hộp cát của chúng tôi.

--subcommands (-s)

Hiển thị danh sách toàn diện về mọi lệnh mà Bazel chạy trong quá trình tạo, bất kể lệnh đó có thành công hay không

Khởi động

Cờ Mô tả

--bazelrc

Bạn có thể chỉ định các lựa chọn mặc định của Bazel trong tệp .bazelrc. Nếu có nhiều tệp .bazelrc, bạn có thể chọn tệp .bazelrc sẽ được dùng bằng cách thêm --bazelrc=<path to the .bazelrc file>.

--host_jvm_args

Giới hạn lượng RAM mà máy chủ Bazel sử dụng. Ví dụ: sau đây giới hạn kích thước vùng nhớ heap của Bazel ở mức 3 GB:
--host_jvm_args=-Xmx3g

--output_base

Kiểm soát cây đầu ra của Bazel. Bazel không lưu trữ dữ liệu đầu ra của bản dựng, bao gồm cả nhật ký, trong chính cây nguồn. Thay vào đó, nó sử dụng một cây đầu ra riêng biệt cho mục đích này.

Kiểm thử Bazel

Các cờ sau đây liên quan đến kiểm thử Bazel

Cờ Mô tả

--java_debug

Khiến các kiểm thử Java phải chờ kết nối với trình gỡ lỗi trước khi được thực thi.

--runs_per_test

Số lần chạy kiểm thử. Ví dụ: để chạy kiểm thử N lần, hãy thêm --runs_per_test=N. Điều này có thể hữu ích để gỡ lỗi các kiểm thử không ổn định và xem liệu một bản sửa lỗi có khiến một kiểm thử luôn thành công hay không.

--test_output

Chỉ định chế độ đầu ra. Theo mặc định, Bazel sẽ ghi lại kết quả kiểm thử trong các tệp nhật ký cục bộ. Khi lặp lại một quy trình kiểm thử bị lỗi, bạn thường muốn sử dụng --test_output=streamed để xem kết quả kiểm thử theo thời gian thực.

Bazel run

Các cờ sau đây có liên quan đến lệnh chạy Bazel.

Cờ Mô tả

--run_under

Thay đổi cách gọi tệp thực thi. Ví dụ: --run_under="strace -c" thường được dùng để gỡ lỗi.

Các lựa chọn bazelrc dành riêng cho người dùng

Các cờ sau đây liên quan đến các lựa chọn .bazelrc dành riêng cho người dùng.

Cờ Mô tả

--disk_cache

Đường dẫn đến một thư mục mà Bazel có thể đọc và ghi các thao tác cũng như đầu ra của thao tác. Nếu thư mục không tồn tại, thư mục sẽ được tạo. Bạn có thể chia sẻ các cấu phần phần mềm giữa nhiều nhánh hoặc không gian làm việc và tăng tốc các bản dựng Bazel bằng cách thêm --disk_cache=<path> vào lệnh.

--jobs

Số lượng công việc đồng thời cần chạy. Bạn thường chỉ cần làm việc này khi sử dụng tính năng thực thi từ xa, trong đó một cụm bản dựng từ xa thực thi nhiều công việc hơn số lõi bạn có cục bộ.

--local_resources

Giới hạn mức tiêu thụ CPU hoặc RAM của các thao tác chạy cục bộ.

--sandbox_base

Cho phép hộp cát tạo các thư mục hộp cát bên dưới đường dẫn này. Theo mặc định, Bazel thực thi các hành động cục bộ trong hộp cát, điều này làm tăng thêm một số chi phí cho bản dựng.

Các lựa chọn bazelrc dành riêng cho dự án

Các cờ sau đây liên quan đến các lựa chọn .bazelrc dành riêng cho dự án.

Cờ Mô tả

--flaky_test_attempts

Thử lại mỗi bài kiểm thử tối đa số lần được chỉ định trong trường hợp có bất kỳ lỗi nào xảy ra. Điều này đặc biệt hữu ích trong quá trình Tích hợp liên tục. Những kiểm thử cần nhiều lần thử mới vượt qua được sẽ được đánh dấu là KHÔNG ỔN ĐỊNH trong bản tóm tắt kiểm thử.

--remote_cache

URI của một điểm cuối lưu vào bộ nhớ đệm. Thiết lập tính năng lưu vào bộ nhớ đệm từ xa có thể là một cách hiệu quả để tăng tốc các bản dựng Bazel. Bạn có thể kết hợp bộ nhớ đệm này với bộ nhớ đệm trên ổ đĩa cục bộ.

--remote_download_regex

Buộc tải các đầu ra bản dựng từ xa có đường dẫn khớp với mẫu này xuống, bất kể chế độ cài đặt --remote_download_outputs. Bạn có thể chỉ định nhiều mẫu bằng cách lặp lại cờ này.

--remote_executor

HOST hoặc HOST:PORT của một điểm cuối thực thi từ xa. Truyền giá trị này nếu bạn đang sử dụng dịch vụ thực thi từ xa. Bạn thường cần phải Thêm --remote_instance_name=<name>.

--remote_instance_name

Giá trị cần truyền dưới dạng instance_name trong API thực thi từ xa.

--show-timestamps

Nếu được chỉ định, dấu thời gian sẽ được thêm vào mỗi thông báo do Bazel tạo, chỉ định thời gian thông báo xuất hiện. Điều này rất hữu ích trên các hệ thống CI để nhanh chóng nắm được bước nào mất bao lâu.

--spawn_strategy

Ngay cả khi thực thi từ xa, việc chạy một số thao tác tạo cục bộ có thể nhanh hơn. Điều này phụ thuộc vào các yếu tố như dung lượng của cụm bản dựng, tốc độ mạng và độ trễ mạng.