Etiket

Sorun bildir Kaynağı görüntüle Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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.

print() veya fail()'ye konumsal bağımsız değişkenler olarak iletildiğinde Label, bunun yerine insanlar tarafından okunabilirlik için optimize edilmiş bir dize gösterimi kullanır. Bu gösterimde, mümkünse ana deponun bakış açısıyla görünen bir depo adı kullanılır.

Üyeler

Şirket

Label Label(input)

Bir etiket dizesini, çağıran .bzl kaynak dosyasının bulunduğu paket bağlamında bir Label nesnesine dönüştürür. Belirtilen değer zaten bir Label ise değiştirilmeden döndürülür.

Makrolar için ilgili bir işlev olan native.package_relative_label(), girişi şu anda oluşturulmakta olan paket bağlamında Label'ye dönüştürür. Etiket değerli kural özellikleri tarafından otomatik olarak yapılan dize-etiket dönüşümünü taklit etmek için bu işlevi kullanın.

Parametreler

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

ad

string Label.name

Bu etiket tarafından belirtilen hedefin adı. Örneğin:
Label("@@foo//pkg/foo:abc").name == "abc"

paket

string Label.package

Bu etiket tarafından belirtilen hedefi içeren paketin adı (depo adı olmadan). Ö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 bilgileri kullanmayın. --+incompatible_enable_deprecated_label_apis
Kullanımdan kaldırıldı. ayarlanarak deneysel olarak etkinleştirilebilir. Bu yöntem, belirgin bir depo adı içeren bir bağımsız değişkenle kullanıldığında şaşırtıcı bir şekilde çalışır. Bunun yerine Label.same_package_label(), native.package_relative_label() veya Label() kullanın.

Mutlak (// ile başlar) veya mevcut pakete göre göreceli olan bir etiketi çözer. Bu etiket uzak bir depoda bulunuyorsa bağımsız değişken, o depoya göre çözümlenir. Bağımsız değişkende bir depo adı varsa mevcut etiket yoksayılır ve bağımsız değişken olduğu gibi döndürülür. Ancak depo adı mevcut 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")

Depo eşlemesi {'@other' : '@remapped'} ise aşağıdaki yeniden eşleme gerçekleşir:

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

Parametreler

Parametre Açıklama
relName string; required
Bu etikete göre çözümlenecek etiket.

repo_name

string Label.repo_name

Bu etiket tarafından belirtilen hedefi içeren deponun standart adı. Adın başında @ işareti (@) bulunmaz. Örneğin,
Label("@@foo//bar:baz").repo_name == "foo"

same_package_label

Label Label.same_package_label(target_name)

Bu etiketle aynı pakette, belirtilen hedef adıyla bir etiket oluşturur.

Parametreler

Parametre Açıklama
target_name string; required
Yeni etiketin hedef adı.

workspace_name

string Label.workspace_name

Deneysel. Bu API deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu bilgileri kullanmayın. --+incompatible_enable_deprecated_label_apis
Kullanımdan kaldırıldı. ayarlanarak deneysel olarak etkinleştirilebilir. "Çalışma alanı adı" alan adı burada yanlış bir adlandırmadır. Bunun yerine aynı şekilde çalışan Label.repo_name alanını kullanın.

Bu etiket tarafından belirtilen hedefi içeren deponun standart adı. Adın başında @ işareti (@) bulunmaz. Örneğin,

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

workspace_root

string Label.workspace_root

Bu etiketle belirtilen hedefi içeren deponun yürütme kökünü, execroot'a göre döndürür. Örneğin:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"