Nhãn

Báo cáo vấn đề Xem nguồn Nightly · 7.4 .

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.

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 có tệp nguồn .bzl gọi. Nếu giá trị đã cho đã là Label, thì giá trị này sẽ không thay đổi.

Đối với macro, một hàm có liên quan là native.package_relative_label() sẽ chuyển đổi đầu vào thành Label trong bối cảnh gói hiện đang được tạo dựng. Hãy sử dụng hàm đó để bắt chước hành động chuyển đổi từ chuỗi sang 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.

Thông 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 một đối tượng Nhãn được truyền, đối tượng đó sẽ được trả về nguyên trạng.

tên

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 một nhãn có 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 một 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ì 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")

Thông số

Thông số Mô tả
relName bắt buộc
Nhãn sẽ được phân giải tương ứng với nhãn này.

workspace_name

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"

workspace_root

string Label.workspace_root

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