quy tắc về kho lưu trữ cục bộ

Báo cáo vấn đề Xem nguồn Hằng đêm · 7,3 · 7.2 · 7.1 · 7 · 6,5

Các hàm sau đây có thể được tải từ @bazel_tools//tools/build_defs/repo:local.bzl.

Quy tắc để tạo thư mục trong hệ thống tệp cục bộ có sẵn dưới dạng kho lưu trữ.

Thiết lập

Để sử dụng các quy tắc này trong tiện ích mô-đun, hãy tải các quy tắc đó trong tệp .bzl rồi gọi chúng từ hàm triển khai của tiện ích. Ví dụ: để sử dụng local_repository:

load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")

def _my_extension_impl(mctx):
  local_repository(name = "foo", path = "foo")

my_extension = module_extension(implementation = _my_extension_impl)

Ngoài ra, bạn có thể trực tiếp gọi trực tiếp các quy tắc kho lưu trữ này trong tệp MODULE.bazel bằng use_repo_rule:

local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")

local_repository

local_repository(name, path, repo_mapping)

Tạo một thư mục cục bộ đã chứa các tệp Bazel ở dạng kho lưu trữ. Thư mục này phải chứa các tệp Bazel BUILD và một tệp ranh giới kho lưu trữ. Nếu tài liệu này không chứa các tệp này, hãy cân nhắc sử dụng <a href="#new_local_repository"><code>new_local_repository</code></a> thay thế.

Thuộc tính

name Tên; bắt buộc

Tên riêng biệt cho kho lưu trữ này.

path String; bắt buộc

Đường dẫn đến thư mục để cung cấp dưới dạng kho lưu trữ.

Đường dẫn có thể là tuyệt đối hoặc tương đối so với gốc của không gian làm việc.

repo_mapping Từ điển: Chuỗi -> String; bắt buộc

Một từ điển từ tên kho lưu trữ cục bộ thành tên kho lưu trữ toàn cục. Điều này cho phép bạn kiểm soát quá trình phân giải phần phụ thuộc không gian làm việc cho các phần phụ thuộc của kho lưu trữ này.

Ví dụ: một mục "@foo": "@bar"" khai báo rằng mỗi khi kho lưu trữ này phụ thuộc vào "@foo" (chẳng hạn như phần phụ thuộc trên "@foo//some:target", thì phần phụ thuộc đó sẽ thực sự giải quyết phần phụ thuộc đó trong "@bar" được khai báo trên toàn cầu ("@bar//some:target").

new_local_repository

new_local_repository(name, build_file, build_file_content, path, repo_mapping)

Tạo một thư mục cục bộ không chứa các tệp Bazel làm kho lưu trữ. Thư mục này không cần chứa các tệp Bazel BUILD hoặc tệp ranh giới kho lưu trữ; chúng sẽ được tạo theo quy tắc kho lưu trữ này. Nếu thư mục đã chứa các tệp Bazel, hãy cân nhắc sử dụng <a href="#local_repository"><code>local_repository</code></a> thay thế.

Thuộc tính

name Tên; bắt buộc

Tên riêng biệt cho kho lưu trữ này.

build_file Nhãn; không bắt buộc

Một tệp dùng làm tệp BUILD cho kho lưu trữ này.

Bạn phải chỉ định chính xác một trong hai giá trị build_filebuild_file_content.

Tệp được nhãn này đề địa chỉ không cần phải được đặt tên là BUILD, nhưng bạn có thể đặt tên tệp này. Các tệp như BUILD.new-repo-name có thể hoạt động tốt để phân biệt với các tệp BUILD thực tế.

build_file_content String; không bắt buộc

Nội dung của tệp BUILD sẽ được tạo cho kho lưu trữ này.

Bạn phải chỉ định chính xác một trong hai giá trị build_filebuild_file_content.

path String; bắt buộc

Đường dẫn đến thư mục để cung cấp dưới dạng kho lưu trữ.

Đường dẫn có thể là tuyệt đối hoặc tương đối so với gốc của không gian làm việc.

repo_mapping Từ điển: Chuỗi -> String; bắt buộc

Một từ điển từ tên kho lưu trữ cục bộ thành tên kho lưu trữ toàn cục. Điều này cho phép bạn kiểm soát quá trình phân giải phần phụ thuộc không gian làm việc cho các phần phụ thuộc của kho lưu trữ này.

Ví dụ: một mục "@foo": "@bar"" khai báo rằng mỗi khi kho lưu trữ này phụ thuộc vào "@foo" (chẳng hạn như phần phụ thuộc trên "@foo//some:target", thì phần phụ thuộc đó sẽ thực sự giải quyết phần phụ thuộc đó trong "@bar" được khai báo trên toàn cầu ("@bar//some:target").