http deposu kuralları

Aşağıdaki işlevler @bazel_tools//tools/build_defs/repo:http.bzl üzerinden yüklenebilir.

HTTP üzerinden dosya ve arşiv indirme kuralları.

Kurulum

Bu kuralları bir modül uzantısında kullanmak için .bzl dosyanıza yükleyin ve ardından uzantınızın uygulama işlevinden çağırın. Örneğin, http_archive simgesini kullanmak için:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

def _my_extension_impl(mctx):
  http_archive(name = "foo", urls = [...])

my_extension = module_extension(implementation = _my_extension_impl)

Alternatif olarak, bu depo kurallarını MODULE.bazel dosyanızdaki use_repo_rule ile doğrudan çağırabilirsiniz:

http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(name = "foo", urls = [...])

http_archive

load("@bazel//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(name, add_prefix, auth_patterns, build_file, build_file_content, canonical_id,
             integrity, netrc, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches,
             remote_file_integrity, remote_file_urls, remote_patch_strip, remote_patches,
             repo_mapping, sha256, strip_prefix, type, url, urls, workspace_file,
             workspace_file_content)

Bir Bazel deposunu sıkıştırılmış arşiv dosyası olarak indirir, sıkıştırmasını çözer ve hedeflerini bağlama için kullanılabilir hale getirir.

Şu dosya uzantılarını destekler: "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", "tar.zst", "tzst", tar.bz2, "ar" veya "deb".

Örnekler: Mevcut depoda, kökü ~/chat-app dizininde olan bir sohbet programının kaynak kodunun bulunduğu varsayılır. Bunun, http://example.com/openssl.zip adresindeki bir SSL kitaplığına bağlı olması gerekir. Bu .zip dosyası şu dizin yapısını içerir:

  WORKSPACE
  src/
    openssl.cc
    openssl.h

Kullanıcı, yerel depoda aşağıdaki hedef tanımını içeren bir openssl.BUILD dosyası oluşturur:

  cc_library(
      name = "openssl-lib",
      srcs = ["src/openssl.cc"],
      hdrs = ["src/openssl.h"],
  )

~/chat-app/WORKSPACE deposundaki hedefler, ~/chat-app/WORKSPACE'a aşağıdaki satırlar eklenirse bu hedefe bağlı olabilir:~/chat-app

  load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

  http_archive(
      name = "my_ssl",
      url = "http://example.com/openssl.zip",
      sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      build_file = "@//:openssl.BUILD",
  )

Ardından hedefler bağımlılık olarak @my_ssl//:openssl-lib değerini belirtir.

ÖZELLİKLER

name Ad; gerekli

Bu kod deposu için benzersiz bir ad.

add_prefix Dize; isteğe bağlı

Depo dizine göre hedef dizin. Arşivdeki dosya yollarına "strip_prefix" (varsa) uygulandıktan sonra arşiv bu dizine açılır. Örneğin, "add_prefix = "bar" ve "strip_prefix = "foo-1.2.3" ise "foo-1.2.3/src/foo.h" dosyasının paketi "bar/src/foo.h" ile açılır.

auth_patterns Sözlük: Dize -> Dize; isteğe bağlı

Ana makine adlarını özel yetkilendirme kalıplarıyla eşleyen isteğe bağlı bir sözlük. Bir URL'nin ana makine adı bu sözlükte mevcutsa değer, HTTP isteği için yetkilendirme başlığı oluşturulurken kalıp olarak kullanılır. Bu, birçok yaygın bulut depolama sağlayıcısında kullanılan özel yetkilendirme şemalarının kullanılabilmesini sağlar. Kalıp şu anda 2 jetonu desteklemektedir: <login> ve <password>. Bunlar, aynı ana makine adı için netrc dosyasında eşdeğer değerlerle değiştirilir. Sonuç, biçimlendirildikten sonra HTTP isteğinin Authorization alanı için değer olarak ayarlanır. Taşıyıcı jetonu kullanan oauth2 etkin bir API'ye http indirme işlemi için örnek özellik ve netrc:

auth_patterns = {
    "storage.cloudprovider.com": "Bearer <password>"
}
netrc:
machine storage.cloudprovider.com
        password RANDOM-TOKEN
Son HTTP isteğinin başlığı aşağıdaki gibi olur:
Authorization: Bearer RANDOM-TOKEN

build_file Etiket; isteğe bağlı

Bu depolar için BUILD dosyası olarak kullanılacak dosya. Bu özellik mutlak bir etikettir (ana depo için "@//" kullanın). Dosyanın BUILD olarak adlandırılmasına gerek yoktur, ancak şöyle olabilir: (BUILD.new-repo-name gibi bir ad, onu deponun gerçek BUILD dosyalarından ayırt etmek için işe yarayabilir. Build_file veya build_file_content ikisi belirtilebilir ancak ikisi birden belirtilemez.

build_file_content Dize; isteğe bağlı

Bu deponun BUILD dosyasının içeriği. build_file veya build_file_content belirtilebilir ancak ikisi birden belirtilemez.

canonical_id Dize; isteğe bağlı

İndirilen dosyanın standart kimliği. Belirtilir ve boş değilse Bazel, aynı standart kimliğe sahip bir istek tarafından önbelleğe eklenmediği sürece dosyayı önbellekten almaz. Belirtilmemiş veya boşsa Bazel, varsayılan olarak standart kimlik olarak dosyanın URL'lerini kullanır. Bu, karma oluşturma işlemini güncellemeden URL'leri güncellemeyle ilgili yaygın hatayı yakalamanıza yardımcı olur. Bu hata, yerel olarak başarılı olan ancak önbellekte dosyası olmayan makinelerde başarısız olan derlemelere neden olur. Bu davranış,--repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONical_ID=0 ile devre dışı bırakılabilir.

integrity Dize; isteğe bağlı

İndirilen dosyanın Alt Kaynak Bütünlüğü biçiminde beklenen sağlama toplamı. Bu, indirilen dosyanın sağlama toplamıyla eşleşmelidir. _Uzak dosyalar değişebileceği için sağlama toplamının atlanması güvenlik riski oluşturur._ Bu alanın atlanması, derlemenizi hermetik hale getirmez. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak bu özellik veya "sha256" gönderimden önce ayarlanmalıdır.

netrc Dize; isteğe bağlı

Kimlik doğrulama için kullanılacak .netrc dosyasının konumu

patch_args Dize listesi; isteğe bağlı

Yama aracına verilen bağımsız değişkenler. Varsayılan olarak -p0 değerine ayarlanır ancak git tarafından oluşturulan yamalar için genellikle -p1 değerine ihtiyaç duyulur. Birden fazla -p bağımsız değişkeni belirtilirse en son bağımsız değişken geçerli olur. -p dışındaki bağımsız değişkenler belirtilirse Bazel, Bazel'e özgü yamayı uygulamak yerine yamayı komut satırı aracıyla uygular. Yama komut satırı aracına geri dönülürken ve patch_tool özelliği belirtilmediyse "patch" kullanılır. Bu, yalnızca "patches" özelliğindeki yama dosyalarını etkiler.

patch_cmds Dize listesi; isteğe bağlı

Yamalar uygulandıktan sonra Linux/Macos'ta uygulanacak Bash komutları dizisi.

patch_cmds_win Dize listesi; isteğe bağlı

Yamalar uygulandıktan sonra Windows'a uygulanacak PowerShell komutları dizisi. Bu özellik ayarlanmazsa patch_cmds Windows'ta yürütülür. Bunun için Bash ikilisinin mevcut olması gerekir.

patch_tool Dize; isteğe bağlı

Kullanılacak yamalı(1) yardımcı program. Bu belirtilirse Bazel, Bazel'e özgü yamalı uygulama yerine belirtilen yamalı araç kullanır.

patches Etiket listesi; isteğe bağlı

Arşiv çıkarıldıktan sonra yama olarak uygulanacak dosyaların listesi. Varsayılan olarak, fuzz eşleme ve ikili yamayı desteklemeyen Bazel'da yerel yama uygulamasını kullanır. Ancak "yama_aracı" özelliği belirtilirse veya "patch_args" özelliğinde "-p" dışında bağımsız değişkenler varsa Bazel, yama komut satırı aracını kullanmaya devam eder.

remote_file_integrity Sözlük: Dize -> Dize; isteğe bağlı

Dosya göreli yollarının (anahtar) bütünlük değeriyle (değer) eşlemesi. Bu göreli yollar, "remote_file_urls" özelliğindeki dosyalarla (anahtar) eşlenmelidir.

remote_file_urls Sözlük: Dize -> Dize listesi; isteğe bağlı

İndirilecek ve depo üzerinde yer paylaşımlı dosyalar olarak kullanıma sunulacak URL'lerin (değer) göreli yollarının (anahtar) haritası. Bu, mevcut bir deponun üzerine WORKSPACE veya BUILD.bazel dosyaları eklemek istediğinizde kullanışlıdır. Dosyalar, "patches" özelliğindeki yamalar uygulanmadan önce indirilir ve URL listesinin tamamı aynı dosyanın olası aynaları olmalıdır. URL'ler, başarılı olana kadar sırayla denenir.

remote_patch_strip Tam sayı; isteğe bağlı

Uzak yamalardaki dosya adından kaldırılacak ön eğik çizgi sayısı.

remote_patches Sözlük: Dize -> Dize; isteğe bağlı

Yama dosyası URL'sinin bütünlük değeriyle eşlemesi. Arşiv ayıklandıktan sonra ve "patches" özelliğindeki yama dosyaları uygulanmadan önce uygulanır. Bazel'e özgü yamayı kullanır. "remote_patch_strip" ile yamanın şerit numarasını belirtebilirsiniz.

repo_mapping Sözlük: Dize -> Dize; isteğe bağlı

Yalnızca "WORKSPACE" bağlamında: Yerel depo adından genel depo adına sözlük. Bu sayede, bu deponun bağımlılıkları için çalışma alanı bağımlılık çözümü üzerinde kontrol sahibi olursunuz. Örneğin, "@foo": "@bar" girişi, bu deposunun "@foo"a bağımlı olduğu her durumda (ör. "@foo//some:target" bağımlılığı) bu bağımlılığı aslında global olarak tanımlanmış "@bar" ("@bar//some:target") içinde çözmesi gerektiğini belirtir. Bu özellik, "MODULE.bazel" bağlamında (bir modül uzantısının uygulama işlevi içinde bir depo kuralı çağırırken) _desteklenmez_.

sha256 Dize; isteğe bağlı

İndirilen dosyanın beklenen SHA-256 değeri. Bu, indirilen dosyanın SHA-256'sıyla eşleşmelidir. _Uzak dosyalar değişebileceği için SHA-256'yı çıkarmak güvenlik riski oluşturur._ Bu alanın çıkarılması, en iyi ihtimalle derlemenizin hermetik olmasını engeller. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak bu özellik veya "integrity", yayınlamadan önce ayarlanmalıdır.

strip_prefix Dize; isteğe bağlı

Çıkarılan dosyalardan kaldırılacak bir dizin ön eki. Birçok arşivde, arşivdeki tüm yararlı dosyaları içeren bir üst düzey dizin bulunur. Bu ön eki "build_file" içinde tekrar tekrar belirtmek yerine, bu alan kullanılarak ayıklanan tüm dosyalardan kaldırılabilir. Örneğin, altında "WORKSPACE" dosyası bulunan "foo-lib-1.2.3/" dizinini ve oluşturmak istediğiniz gerçek kodu içeren "src/", "lib/" ve "test/" dizinlerini içeren "foo-lib-En Son.zip" dosyasını kullandığınızı varsayalım. "foo-lib-1.2.3" dizinini üst düzey dizininiz olarak kullanmak için "strip_prefix = "foo-lib-1.2.3"" değerini belirtin. Bu dizinin dışındaki dosyaların (ör. üst düzey lisans dosyası) kaldırılacağını ve bunlara erişilemeyeceğini unutmayın. Bu, önek ile başlayan ancak dizinde bulunmayan dosyaları/dizinleri (ör. `foo-lib-1.2.3.release-notes`). Belirtilen ön ek arşivdeki bir dizinle eşleşmezse Bazel hata döndürür.

type Dize; isteğe bağlı

İndirilen dosyanın arşiv türü. Varsayılan olarak arşiv türü, URL'nin dosya uzantısından belirlenir. Dosyanın uzantısı yoksa aşağıdakilerden birini açıkça belirtebilirsiniz: "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", "tar.zst", "tzst", "tar.bz2", "ar" veya"deb".

url Dize; isteğe bağlı

Bazel'in kullanabileceği bir dosyanın URL'si. Bu bir dosya, http veya https URL'si olmalıdır. Yönlendirmeler takip edilir. Kimlik doğrulama desteklenmez. Getirilecek alternatif URL'leri belirtmenize olanak tanıyan urls parametresi sayesinde daha fazla esneklik elde edebilirsiniz.

urls Dize listesi; isteğe bağlı

Bazel'in kullanabileceği bir dosyanın URL'lerinin listesi. Her giriş bir dosya, http veya https URL'si olmalıdır. Yönlendirmeler takip edilir. Kimlik doğrulama desteklenmiyor. URL'ler, başarılı olana kadar sırayla denenir. Bu nedenle, önce yerel aynaları listelemeniz gerekir. Tüm indirmeler başarısız olursa kural da başarısız olur.

workspace_file Etiket; isteğe bağlı

Bu depo için "WORKSPACE" dosyası olarak kullanılacak dosya. "workspace_file" veya "workspace_file_content" belirtilebilir. İkisi birden belirtilemez.

workspace_file_content Dize; isteğe bağlı

Bu deponun WORKSPACE dosyasının içeriği. "workspace_file" veya "workspace_file_content"den biri belirtilebilir ya da ikisi birden belirtilemez.

ORTAM DEĞİŞKENLERİ

Bu depo kuralı aşağıdaki ortam değişkenlerine bağlıdır:

  • BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID

http_file

load("@bazel//tools/build_defs/repo:http.bzl", "http_file")

http_file(name, auth_patterns, canonical_id, downloaded_file_path, executable, integrity, netrc,
          repo_mapping, sha256, url, urls)

Bir URL'den dosya indirir ve bunu, dosya grubu olarak kullanılabilmesini sağlar.

Örnekler: Özel kurallarınız için bir debian paketine ihtiyacınız olduğunu varsayalım. Bu paketi http://example.com/package.deb adresinden indirebilirsiniz. Ardından WORKSPACE dosyanıza şunları ekleyebilirsiniz:

  load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")

  http_file(
      name = "my_deb",
      url = "http://example.com/package.deb",
      sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  )

Hedefler, bu dosyaya bağımlı olacak bağımlılık olarak @my_deb//file'ü belirtir.

ÖZELLİKLER

name Ad; gerekli

Bu depo için benzersiz bir ad.

auth_patterns Sözlük: Dize -> Dize; isteğe bağlı

Ana makine adlarını özel yetkilendirme kalıplarıyla eşleyen isteğe bağlı bir sözlük. Bir URL'nin ana makine adı bu sözlükte mevcutsa değer, HTTP isteği için yetkilendirme başlığı oluşturulurken kalıp olarak kullanılır. Bu, birçok yaygın bulut depolama sağlayıcısında kullanılan özel yetkilendirme şemalarının kullanılmasını sağlar. Desen şu anda 2 jetonu desteklemektedir: <login> ve <password>. Bunlar, aynı ana makine adı için netrc dosyasında eşdeğer değerleriyle değiştirilir. Sonuç, biçimlendirildikten sonra HTTP isteğinin Authorization alanı için değer olarak ayarlanır. Taşıyıcı jetonu kullanan oauth2 etkin bir API'ye http indirme işlemi için örnek özellik ve netrc:

auth_patterns = {
    "storage.cloudprovider.com": "Bearer <password>"
}
netrc:
machine storage.cloudprovider.com
        password RANDOM-TOKEN
Son HTTP isteğinin başlığı aşağıdaki gibi olur:
Authorization: Bearer RANDOM-TOKEN

canonical_id Dize; isteğe bağlı

İndirilen dosyanın standart kimliği. Belirtilir ve boş değilse Bazel, aynı standart kimliğe sahip bir istek tarafından önbelleğe eklenmediği sürece dosyayı önbellekten almaz. Belirtilmemiş veya boşsa Bazel, varsayılan olarak standart kimlik olarak dosyanın URL'lerini kullanır. Bu, karma oluşturma işlemini güncellemeden URL'leri güncellemeyle ilgili yaygın hatayı yakalamanıza yardımcı olur. Bu hata, yerel olarak başarılı olan ancak önbellekte dosyası olmayan makinelerde başarısız olan derlemelere neden olur. Bu davranış,--repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONical_ID=0 ile devre dışı bırakılabilir.

downloaded_file_path Dize; isteğe bağlı

İndirilen dosyaya atanan yol

executable Boole; isteğe bağlı

İndirilen dosyanın yürütülebilir hale gelip gelmediği.

integrity Dize; isteğe bağlı

İndirilen dosyanın Alt Kaynak Bütünlüğü biçiminde beklenen sağlama toplamı. Bu, indirilen dosyanın sağlama toplamıyla eşleşmelidir. _Uzak dosyalar değişebileceği için sağlama toplamının atlanması güvenlik riski oluşturur._ Bu alanın atlanması, derlemenizi hermetik hale getirmez. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak bu özellik veya "sha256" gönderimden önce ayarlanmalıdır.

netrc Dize; isteğe bağlı

Kimlik doğrulama için kullanılacak .netrc dosyasının konumu

repo_mapping Sözlük: Dize -> Dize; isteğe bağlı

Yalnızca "WORKSPACE" bağlamında: yerel depolama alanı adından genel depolama alanı adına giden bir sözlük. Bu, bu deposunun bağımlılıkları için çalışma alanı bağımlılık çözümü üzerinde kontrol sahibi olmanızı sağlar. Örneğin, ""@foo": "@bar"" girişi, bu deponun "@foo"a bağlı olduğu her durumda (örneğin, "@foo//some:target"a bağlı olan bir bağımlılığın aslında global olarak tanımlanan "@bar" ("@bar//some:target" işlevinde "dule.target" işlevinde desteklenen bir DULE.baz işlevi olduğunda) bağımlılığı gibi bir bağımlılığı çözmesi gerektiğini belirtir.

sha256 Dize; isteğe bağlı

İndirilen dosyanın beklenen SHA-256 değeri. Bu, indirilen dosyanın SHA-256 değeriyle eşleşmelidir. _Uzak dosyalar değişebileceği için SHA-256'yı çıkarmak güvenlik riski oluşturur._ Bu alanın çıkarılması, en iyi ihtimalle derlemenizin hermetik olmasını engeller. Geliştirmeyi kolaylaştırmak için isteğe bağlı olarak kullanılabilir ancak dağıtımdan önce ayarlanmalıdır.

url Dize; isteğe bağlı

Bazel'in kullanabileceği bir dosyanın URL'si. Bu bir dosya, http veya https URL'si olmalıdır. Yönlendirmeler takip edilir. Kimlik doğrulama desteklenmez. Getirilecek alternatif URL'leri belirtmenize olanak tanıyan urls parametresi sayesinde daha fazla esneklik elde edebilirsiniz.

urls Dize listesi; isteğe bağlı

Bazel'in kullanabileceği bir dosyanın URL'lerinin listesi. Her giriş bir dosya, http veya https URL'si olmalıdır. Yönlendirmeler takip edilir. Kimlik doğrulama desteklenmiyor. URL'ler, başarılı olana kadar sırayla denenir. Bu nedenle, önce yerel aynaları listelemeniz gerekir. Tüm indirmeler başarısız olursa kural da başarısız olur.

ORTAM DEĞİŞKENLERİ

Bu depo kuralı, aşağıdaki ortam değişkenlerine bağlıdır:

  • BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID

http_jar

load("@bazel//tools/build_defs/repo:http.bzl", "http_jar")

http_jar(name, auth_patterns, canonical_id, downloaded_file_name, integrity, netrc, repo_mapping,
         sha256, url, urls)

Bir URL'den jar dosyasını indirip java_import olarak kullanılabilir hale getirir.

İndirilen dosyalar .jar uzantısına sahip olmalıdır.

Örnekler: Mevcut depoda, ~/chat-app dizininde köklenen bir sohbet programının kaynak kodunun bulunduğu varsayılır. http://example.com/openssl-0.2.jar adresinden kullanılabilen bir SSL kitaplığına bağlı olmalıdır.

Aşağıdaki satırlar ~/chat-app/WORKSPACE'a eklenirse ~/chat-app deposundaki hedefler bu hedefe bağlı olabilir:

  load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_jar")

  http_jar(
      name = "my_ssl",
      url = "http://example.com/openssl-0.2.jar",
      sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  )

Hedefler, bu jar dosyasına bağlı bir bağımlılık olarak @my_ssl//jar'ü belirtir.

Unix tabanlı sistemlerdeyseniz "file:///path/to/file" ifadesini kullanarak mevcut sistemdeki (localhost) dosyalara da referans verebilirsiniz. Windows kullanıyorsanız "file:///c:/path/to/file" ifadesini kullanın. Her iki örnekte de üç eğik çizgiye (/) dikkat edin. İlk iki eğik çizgi file://'a, üçüncü eğik çizgi ise dosyanın mutlak yoluna aittir.

ÖZELLİKLER

name Ad; zorunlu

Bu kod deposu için benzersiz bir ad.

auth_patterns Sözlük: Dize -> Dize; isteğe bağlı

Ana makine adlarını özel yetkilendirme kalıplarıyla eşleştiren isteğe bağlı bir dikte. Bir URL'nin ana makine adı bu sözlükte mevcutsa değer, HTTP isteği için yetkilendirme başlığı oluşturulurken kalıp olarak kullanılır. Bu, birçok yaygın bulut depolama sağlayıcısında kullanılan özel yetkilendirme şemalarının kullanılabilmesini sağlar. Desen şu anda 2 jetonu desteklemektedir: <login> ve <password>. Bunlar, aynı ana makine adı için netrc dosyasında eşdeğer değerleriyle değiştirilir. Sonuç, biçimlendirildikten sonra HTTP isteğinin Authorization alanı için değer olarak ayarlanır. Taşıyıcı jetonu kullanan oauth2 etkin bir API'ye http indirme işlemi için örnek özellik ve netrc:

auth_patterns = {
    "storage.cloudprovider.com": "Bearer <password>"
}
netrc:
machine storage.cloudprovider.com
        password RANDOM-TOKEN
Son HTTP isteğinin başlığı aşağıdaki gibi olur:
Authorization: Bearer RANDOM-TOKEN

canonical_id Dize; isteğe bağlı

İndirilen dosyanın standart kimliği. Belirtilir ve boş değilse Bazel, aynı standart kimliğe sahip bir istek tarafından önbelleğe eklenmediği sürece dosyayı önbellekten almaz. Belirtilmemiş veya boşsa Bazel, varsayılan olarak standart kimlik olarak dosyanın URL'lerini kullanır. Bu, karma oluşturma işlemini güncellemeden URL'leri güncellemeyle ilgili yaygın hatayı yakalamanıza yardımcı olur. Bu hata, yerel olarak başarılı olan ancak önbellekte dosyası olmayan makinelerde başarısız olan derlemelere neden olur. Bu davranış,--repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONical_ID=0 ile devre dışı bırakılabilir.

downloaded_file_name Dize; isteğe bağlı

Jartona atanan dosya adı indirildi

integrity Dize; isteğe bağlı

İndirilen dosyanın Alt Kaynak Bütünlüğü biçiminde beklenen sağlama toplamı. Bu, indirilen dosyanın sağlama toplamıyla eşleşmelidir. _Uzak dosyalar değişebileceği için sağlama toplamının atlanması güvenlik riski oluşturur._ Bu alanın atlanması, derlemenizi hermetik hale getirmez. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak bu özellik veya "sha256" gönderimden önce ayarlanmalıdır.

netrc Dize; isteğe bağlı

Kimlik doğrulama için kullanılacak .netrc dosyasının konumu

repo_mapping Sözlük: Dize -> Dize; isteğe bağlı

Yalnızca "WORKSPACE" bağlamında: Yerel depo adından genel depo adına sözlük. Bu, bu deposunun bağımlılıkları için çalışma alanı bağımlılık çözümü üzerinde kontrol sahibi olmanızı sağlar. Örneğin, "@foo": "@bar" girişi, bu deposunun "@foo"a bağımlı olduğu her durumda (ör. "@foo//some:target" bağımlılığı) bu bağımlılığı aslında global olarak tanımlanmış "@bar" ("@bar//some:target") içinde çözmesi gerektiğini belirtir. Bu özellik, "MODULE.bazel" bağlamında (bir modül uzantısının uygulama işlevi içinde bir depo kuralı çağırırken) _desteklenmez_.

sha256 Dize; isteğe bağlı

İndirilen dosyanın beklenen SHA-256 değeri. Bu, indirilen dosyanın SHA-256'sıyla eşleşmelidir. _Uzak dosyalar değişebileceği için SHA-256'yı çıkarmak güvenlik riski oluşturur._ Bu alanın çıkarılması, en iyi ihtimalle derlemenizin hermetik olmasını engeller. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak bu özellik veya "integrity", yayınlamadan önce ayarlanmalıdır.

url Dize; isteğe bağlı

Bazel'in kullanabileceği bir dosyanın URL'si. Bu bir dosya, http veya https URL'si olmalıdır. Yönlendirmeler takip edilir. Kimlik doğrulama desteklenmez. Getirilecek alternatif URL'lerin belirtilmesine olanak tanıyan urls parametresi, daha fazla esneklik elde edebilir. URL, ".jar" ile bitmelidir.

urls Dize listesi; isteğe bağlı

Bazel'in kullanabileceği bir dosyanın URL'lerinin listesi. Her giriş bir dosya, http veya https URL'si olmalıdır. Yönlendirmeler takip edilir. Kimlik doğrulama desteklenmez. URL'ler, başarılı olana kadar sırayla denenir. Bu nedenle, önce yerel aynaları listelemeniz gerekir. Tüm indirme işlemleri başarısız olursa kural başarısız olur. Tüm URL'ler ".jar" ile bitmelidir.

ORTAM DEĞİŞKENLERİ

Bu depo kuralı aşağıdaki ortam değişkenlerine bağlıdır:

  • BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID