Etiket

. Sorun bildir Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

. BUILD hedef tanımlayıcısı.

Her Label örneği l için dize gösterimi str(l), Label() çağrısının nerede gerçekleştiğine bakılmaksızın Label(str(l)) == l özelliğine sahiptir.

Üyeler

Şirket

Label Label(input)

.bzl çağrısı yapan kaynak dosyanın bulunduğu paketin bağlamında, bir etiket dizesini Label nesnesine dönüştürür. Verilen değer zaten Label ise değiştirilerek döndürülür.

İlgili bir işlev olan native.package_relative_label(), makrolarda ise girişi şu anda oluşturulmakta olan paketin bağlamında Label biçimine dönüştürür. Etiket değerli kural özellikleri tarafından otomatik olarak yapılan dizeden etikete dönüşümü taklit etmek için bu işlevi kullanın.

Parametreler

Parametre Açıklama
input string; veya Etiket; gerekli
Giriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi geçilirse olduğu gibi döndürülür.

ad

string Label.name

Bu etiketin atıfta bulunduğu hedefin adı. Örneğin:
Label("@@foo//pkg/foo:abc").name == "abc"

paket

string Label.package

Bu etiket tarafından başvuruda bulunulan hedefi içeren paketin, depo adı olmadan adı. Örneğin:
Label("@@repo//pkg/foo:abc").package == "pkg/foo"

ilgili

Label Label.relative(relName)

Deneysel. Bu API deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu metrikten yararlanmayın. --+incompatible_enable_deprecated_label_apis
Desteği sonlandırıldı ayarlanarak deneysel olarak etkinleştirilebilir. Bu yöntem, görünen bir depo adı içeren bir bağımsız değişkenle birlikte kullanıldığında beklenmedik şekilde davranır. Bunun yerine Label.same_package_label(), native.package_relative_label() veya Label() tercih edin.

Mutlak (// ile başlayan) veya mevcut paketle göreli bir etiketi çözümler. Bu etiket uzak bir depodaysa bağımsız değişken, o depoya göre çözümlenir. Bağımsız değişken bir depo adı içeriyorsa geçerli etiket yok sayılır ve bağımsız değişken olduğu gibi döndürülür. Tek fark, depo adı, geçerli depo eşlemesindeyse yeniden yazılır. Ayrılmış etiketler de olduğu gibi döndürülür.
Örneğin:

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")

Geçirilen depo eşlemesi {'@other' : '@remapped'} ise aşağıdaki yeniden eşleme işlemi gerçekleşir:

Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")

Parametreler

Parametre Açıklama
relName zorunlu
Buna göre çözümlenecek etiket.

repo_name

string Label.repo_name

Bu etiket tarafından başvuruda bulunulan hedefi içeren deponun, önde gelen işaret işaretleri (@) olmadan standart adı. Örneğin,
Label("@@foo//bar:baz").repo_name == "foo"

same_package_label

Label Label.same_package_label(target_name)

Belirtilen hedef ada sahip bu etiketle aynı pakette bir etiket oluşturur.

Parametreler

Parametre Açıklama
target_name zorunlu
Yeni etiketin hedef adı.

workspace_name

string Label.workspace_name

Deneysel. Bu API deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu metrikten yararlanmayın. --+incompatible_enable_deprecated_label_apis
Desteği sonlandırıldı ayarlanarak deneysel olarak etkinleştirilebilir. Alan adı "çalışma alanı adı" "Burada yanlış anlaşılanlar var; bunun yerine benzer davranışa sahip Label.repo_name kullanın.

Bu etiket tarafından başvuruda bulunulan hedefi içeren deponun, önde gelen işaret işaretleri (@) olmadan standart adı. Örneğin,

Label("@@foo//bar:baz").workspace_name == "foo"

workspace_root

string Label.workspace_root

execroot ile göreli olarak bu etiket tarafından başvuruda bulunulan hedefi içeren deponun yürütme kökünü döndürür. Örneğin:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"