Nhãn

Báo cáo vấn đề Xem nguồn

Giá trị nhận dạng mục tiêu XÂY DỰNG.

Thành 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 đang tồn tại tệp nguồn .bzl gọi. Nếu giá trị đã cho là một Label, thì kết quả trả về sẽ không thay đổi.

Đối với macro, hàm liên quan (native.package_relative_label()) sẽ chuyển đổi dữ liệu đầu vào thành Label trong bối cảnh gói hiện đang được tạo. Hãy dùng hàm đó để bắt chước lượt chuyển đổi chuỗi thành nhãn do các thuộc tính quy tắc gắn nhãn thực hiện.

Các tham số

Thông số Nội dung mô tả
input string; or Label; bắt buộc
Chuỗi nhãn đầu vào hoặc đối tượng Nhãn. Nếu một đối tượng Nhãn được truyền, hàm sẽ được trả về nguyên trạng.

name

string Label.name

Tên của nhãn này trong gói. Ví dụ:
Label("//pkg/foo:abc").name == "abc"

gói hàng

string Label.package

Phần gói của nhãn này. Ví dụ:
Label("//pkg/foo:abc").package == "pkg/foo"

có liên quan

Label Label.relative(relName)

Phân giải nhãn là tuyệt đối (bắt đầu bằng //) hoặc liên quan đến gói hiện tại. Nếu nhãn này nằm trong một 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ữ, nhãn hiện tại sẽ bị bỏ qua và đối số được trả về nguyên trạng, ngoại trừ tên kho lưu trữ được ghi lại nếu tên đó nằm trong quá trình liên kết kho lưu trữ hiện tại. Các nhãn dành riêng 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 ánh xạ kho lưu trữ được truyền vào là {'@other' : '@remapped'}, thì quá trình á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 theo nhãn này.

tên_không gian làm việc

string Label.workspace_name

Phần kho lưu trữ của nhãn này. Ví dụ:
Label("@foo//bar:baz").workspace_name == "foo"

Không gian làm việc gốc

string Label.workspace_root

Trả về gốc thực thi cho không gian làm việc của nhãn này, liên quan đến tệp thực thi. Ví dụ:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"