Giá trị nhận dạng mục tiêu BUILD.
Đối với mỗi thực thể Label
l
, bản trình bày chuỗi str(l)
có thuộc tính Label(str(l)) == l
, bất kể lệnh gọi Label()
xảy ra ở đâu.
Khi được truyền dưới dạng đối số vị trí đến print()
hoặc fail()
, Label
sẽ sử dụng một chuỗi đại diện được tối ưu hoá để người dùng dễ đọc. Biểu thị này sử dụng tên kho lưu trữ rõ ràng từ quan điểm của kho lưu trữ chính nếu có thể.
Hội viên
Hãng nhạc
Label Label(input)Chuyển đổi chuỗi nhãn thành đối tượng
Label
, trong ngữ cảnh của gói chứa tệp nguồn .bzl
gọi. Nếu giá trị đã cho là Label
, thì giá trị đó sẽ được trả về mà không thay đổi.Đối với macro, một hàm liên quan, native.package_relative_label()
, sẽ chuyển đổi dữ liệu đầu vào thành Label
trong ngữ cảnh của gói đang được tạo. Sử dụng hàm đó để mô phỏng quá trình chuyển đổi chuỗi thành nhãn được thực hiện tự động bằng các thuộc tính quy tắc có giá trị nhãn.
Tham số
Thông số | Mô tả |
---|---|
input
|
string; hoặc Label;
bắt buộc Chuỗi nhãn đầu vào hoặc đối tượng Nhãn. Nếu đối tượng Nhãn được truyền, đối tượng đó sẽ được trả về nguyên trạng. |
tên
string Label.nameTên của mục tiêu được nhãn này tham chiếu đến. Ví dụ:
Label("@@foo//pkg/foo:abc").name == "abc"
gói hàng
string Label.packageTên của gói chứa mục tiêu được nhãn này tham chiếu đến, không có tên kho lưu trữ. Ví dụ:
Label("@@repo//pkg/foo:abc").package == "pkg/foo"
có liên quan
Label Label.relative(relName)Thử nghiệm. API này đang trong giai đoạn thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào tính năng này. Bạn có thể bật tính năng này trên cơ sở thử nghiệm bằng cách đặt
--+incompatible_enable_deprecated_label_apis
Không dùng nữa. Phương thức này hoạt động đáng ngạc nhiên khi được sử dụng với một đối số chứa tên kho lưu trữ rõ ràng. Thay vào đó, hãy ưu tiên
Label.same_package_label()
, native.package_relative_label()
hoặc Label()
.Giải quyết một nhãn tuyệt đối (bắt đầu bằng //
) hoặc tương đối so với gói hiện tại. Nếu nhãn này nằm trong kho lưu trữ từ xa, thì đối số sẽ được phân giải tương ứng với kho lưu trữ đó. Nếu đối số chứa tên kho lưu trữ, thì nhãn hiện tại sẽ bị bỏ qua và đối số sẽ được trả về nguyên trạng, ngoại trừ việc tên kho lưu trữ sẽ được ghi lại nếu tên đó nằm trong mối liên kết kho lưu trữ hiện tại. Nhãn được đặt trước cũng sẽ được trả về nguyên trạng.
Ví dụ:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux") Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux") Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux") Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public") Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")
Nếu mối liên kết kho lưu trữ được truyền vào là {'@other' : '@remapped'}
, thì việc liên kết lại sau đây sẽ diễn ra:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
Tham số
Thông số | Mô tả |
---|---|
relName
|
string;
bắt buộc Nhãn sẽ được phân giải tương ứng với nhãn này. |
repo_name
string Label.repo_nameTên chuẩn của kho lưu trữ chứa mục tiêu được nhãn này tham chiếu đến, không có dấu @ ở đầu (
@
). Ví dụ: Label("@@foo//bar:baz").repo_name == "foo"
same_package_label
Label Label.same_package_label(target_name)Tạo một nhãn trong cùng một gói với nhãn này bằng tên mục tiêu đã cho.
Tham số
Thông số | Mô tả |
---|---|
target_name
|
string;
bắt buộc Tên mục tiêu của nhãn mới. |
workspace_name
string Label.workspace_nameThử nghiệm. API này đang trong giai đoạn thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào tính năng này. Bạn có thể bật tính năng này trên cơ sở thử nghiệm bằng cách đặt
--+incompatible_enable_deprecated_label_apis
Không dùng nữa. Tên trường "tên không gian làm việc" là tên gọi không chính xác ở đây; hãy sử dụng
Label.repo_name
có hành vi giống hệt.Tên chuẩn của kho lưu trữ chứa mục tiêu được nhãn này tham chiếu đến, không có dấu @ ở đầu (@
). Ví dụ:
Label("@@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootTrả về thư mục gốc thực thi cho kho lưu trữ chứa mục tiêu được tham chiếu đến bằng nhãn này, tương ứng với execroot. Ví dụ:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"