Hội viên
Nhãn
Label Label(input)Chuyển đổi chuỗi nhãn thành đối tượng
Label
trong ngữ cảnh của gói có tệp nguồn .bzl
đang gọi. Nếu giá trị đã cho đã là Label
, thì giá trị trả về sẽ không thay đổi.Đối với macro, hàm liên quan native.package_relative_label()
sẽ chuyển đổi giá trị đầu vào thành Label
trong bối cảnh gói đang được xây dựng. Sử dụng hàm đó để bắt chước hành động 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.
Các tham số
Thông số | Nội dung mô tả |
---|---|
input
|
string; or Label ;
bắt buộcChuỗ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 này sẽ được trả về y nguyên. |
tên
string Label.nameTên của nhãn này trong gói. Ví dụ:
Label("//pkg/foo:abc").name == "abc"
gói hàng
string Label.packagePhần gói của nhãn này. Ví dụ:
Label("//pkg/foo:abc").package == "pkg/foo"
relative
Label Label.relative(relName)Giải quyết một nhãn là giá trị 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, đố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ữ được viết lại nếu nằm trong mục ánh xạ kho lưu trữ hiện tại. Các nhãn đặ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ục ánh xạ kho lưu trữ được truyền vào là {'@other' : '@remapped'}
, thì hoạt động ánh xạ lại sau đây sẽ diễn ra:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
Các tham số
Thông số | Nội dung mô tả |
---|---|
relName
|
bắt buộc Nhãn sẽ được phân giải liên quan đến nhãn này. |
workspace_name
string Label.workspace_namePhần kho lưu trữ của nhãn này. Ví dụ:
Label("@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootTrả về gốc thực thi cho không gian làm việc của nhãn này, so với executor. Ví dụ:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"