ฟังก์ชันต่อไปนี้สามารถโหลดได้จาก
@bazel_tools//tools/build_defs/repo:http.bzl
กฎสำหรับการดาวน์โหลดไฟล์และที่เก็บถาวรผ่าน HTTP
ตั้งค่า
หากต้องการใช้กฎเหล่านี้ ให้โหลดกฎเหล่านี้ในไฟล์ WORKSPACE
โดยทำดังนี้
load(
"@bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive",
"http_file",
"http_jar",
)
กฎเหล่านี้เป็นกฎ HTTP ของระบบในเวอร์ชันที่ได้รับการปรับปรุง และท้ายที่สุด แทนที่กฎเนทีฟ
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_patch_strip, remote_patches, repo_mapping, sha256, strip_prefix, type, url, urls, workspace_file, workspace_file_content)
ดาวน์โหลดที่เก็บ Bazel เป็นไฟล์ที่เก็บถาวรที่บีบอัด ขยายการบีบอัด และทำให้เป้าหมายพร้อมสำหรับการเชื่อมโยง
รองรับไฟล์นามสกุล "zip"
, "jar"
, "war"
, "aar"
, "tar"
"tar.gz"
, "tgz"
, "tar.xz"
, "txz"
, "tar.zst"
, "tzst"
, tar.bz2
, "ar"
หรือ "deb"
ตัวอย่าง:
สมมติว่าที่เก็บปัจจุบันมีซอร์สโค้ดสำหรับโปรแกรมแชท
รูทที่ไดเรกทอรี ~/chat-app
จำเป็นต้องขึ้นอยู่กับไลบรารี SSL
ซึ่งมีให้ใช้งานจาก http://example.com/openssl.zip ไฟล์ .zip
นี้
มีโครงสร้างไดเรกทอรีต่อไปนี้
WORKSPACE
src/
openssl.cc
openssl.h
ในที่เก็บในเครื่อง ผู้ใช้สร้างไฟล์ openssl.BUILD
ที่
มีคำจำกัดความเป้าหมายต่อไปนี้
cc_library(
name = "openssl-lib",
srcs = ["src/openssl.cc"],
hdrs = ["src/openssl.h"],
)
เป้าหมายในที่เก็บ ~/chat-app
อาจขึ้นอยู่กับเป้าหมายนี้หาก
มีการเพิ่มบรรทัดต่อไปนี้ใน ~/chat-app/WORKSPACE
:
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",
)
เป้าหมายจะระบุ @my_ssl//:openssl-lib
เป็นทรัพยากร Dependency
Attributes
name |
ชื่อ ต้องระบุ
ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้ |
add_prefix |
String; ไม่บังคับ
ไดเรกทอรีปลายทางที่สัมพันธ์กับไดเรกทอรีที่เก็บ ระบบจะคลายการแพคข้อมูลที่เก็บถาวรลงในไดเรกทอรีนี้หลังจากใช้ "strip_prefix" (หากมี) ไปยังเส้นทางไฟล์ภายในที่เก็บถาวร ตัวอย่างเช่น ไฟล์ ระบบจะคลายแพ็ก "foo-1.2.3/src/foo.h" ที่ "bar/src/foo.h" หาก `add_prefix = "bar"` และ `strip_prefix = "foo-1.2.3"` |
auth_patterns |
พจนานุกรม: สตริง -> String; ไม่บังคับ
ไม่บังคับให้แมปชื่อโฮสต์กับรูปแบบการให้สิทธิ์ที่กำหนดเอง
หากมีชื่อโฮสต์ของ URL ในคำสั่งนี้ ระบบจะใช้ค่านี้เป็นรูปแบบเมื่อ
สร้างส่วนหัวการให้สิทธิ์สำหรับคำขอ HTTP ซึ่งทำให้สามารถใช้ตัวเลือกที่กำหนดเอง
แผนการให้สิทธิ์ซึ่งใช้ในผู้ให้บริการพื้นที่เก็บข้อมูลระบบคลาวด์ทั่วไปหลายราย
ขณะนี้รูปแบบรองรับโทเค็น 2 รายการ ได้แก่ auth_patterns = { "storage.cloudprovider.com": "Bearer <password>" }netrc: วันที่ machine storage.cloudprovider.com password RANDOM-TOKENคำขอ HTTP สุดท้ายจะมีส่วนหัวดังต่อไปนี้ Authorization: Bearer RANDOM-TOKEN |
build_file |
ป้ายกำกับ ไม่บังคับ
ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้ แอตทริบิวต์นี้เป็นป้ายกำกับแบบสัมบูรณ์ (ใช้ "@//" สำหรับที่เก็บหลัก) ไฟล์นี้ไม่จำเป็นต้องตั้งชื่อว่า BUILD แต่สามารถเป็น (ชื่ออย่างเช่น BUILD.new-repo-name อาจเหมาะที่จะแยกออกจากไฟล์ BUILD จริงของที่เก็บ สามารถระบุbuild_file หรือbuild_file_content อย่างใดอย่างหนึ่งเท่านั้น |
build_file_content |
String; ไม่บังคับ
เนื้อหาของไฟล์ BUILD สำหรับที่เก็บนี้ สามารถระบุbuild_file หรือbuild_file_content อย่างใดอย่างหนึ่งเท่านั้น |
canonical_id |
String; ไม่บังคับ
รหัส Canonical ของไฟล์ที่ดาวน์โหลด หากระบุไว้และไม่ว่างเปล่า Bazel จะไม่นำไฟล์ออกจากแคช เว้นแต่ว่า ถูกเพิ่มลงในแคชโดยคำขอที่มีรหัส Canonical เดียวกัน หากไม่ระบุหรือเว้นว่างไว้ โดยค่าเริ่มต้น Bazel จะใช้ URL ของไฟล์เป็น รหัส Canonical วิธีนี้ช่วยตรวจจับข้อผิดพลาดทั่วไปของการอัปเดต URL โดยไม่มี อัปเดตแฮชด้วย ซึ่งทำให้บิลด์ที่ประสบความสำเร็จในเครื่องแต่ล้มเหลว ที่ไม่มีไฟล์ในแคช คุณสามารถปิดการทำงานในลักษณะนี้ได้ด้วย --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0. |
integrity |
String; ไม่บังคับ
checksum ที่คาดไว้ในรูปแบบความสมบูรณ์ของทรัพยากรย่อยของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด _มีความเสี่ยงด้านความปลอดภัย ที่จะละเว้นการตรวจสอบข้อผิดพลาด เนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้_ จะทำให้บิลด์ของคุณไม่ใช่สุญญากาศ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "sha256" ก่อนจัดส่ง |
netrc |
String; ไม่บังคับ
ตำแหน่งของไฟล์ .netrc ที่จะใช้สำหรับการตรวจสอบสิทธิ์ |
patch_args |
รายการสตริง ไม่บังคับ
อาร์กิวเมนต์ที่ให้ในเครื่องมือแพตช์ ค่าเริ่มต้นจะเป็น -p0 แต่โดยปกติแล้วจะต้องใช้ -p1 สำหรับแพตช์ที่สร้างโดย git หากระบุอาร์กิวเมนต์ -p หลายรายการ อาร์กิวเมนต์สุดท้ายจะมีผล หากระบุอาร์กิวเมนต์อื่นที่ไม่ใช่ -p ไว้ Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์แทนการใช้งานแพตช์ของ Bazel เมื่อกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์และไม่ได้ระบุแอตทริบิวต์ Patch_tool ระบบจะใช้ "patch" การดำเนินการนี้จะมีผลกับไฟล์แพตช์ในแอตทริบิวต์ "patches" เท่านั้น |
patch_cmds |
รายการสตริง ไม่บังคับ
ลำดับของคำสั่ง Bash ที่จะใช้กับ Linux/Macos หลังจากใช้แพตช์ |
patch_cmds_win |
รายการสตริง ไม่บังคับ
ลำดับของคำสั่ง Powershell ที่จะนำไปใช้ใน Windows หลังจากใช้แพตช์ หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ระบบจะดำเนินการ Patch_cmds ใน Windows ซึ่งต้องมีไบนารีของ Bash |
patch_tool |
String; ไม่บังคับ
โปรแกรมแพตช์(1) ที่จะใช้ หากระบุไว้ Bazel จะใช้เครื่องมือแพตช์ที่ระบุแทนการติดตั้งใช้งานแพตช์ของ Bazel เนทีฟ |
patches |
รายการป้ายกำกับ ไม่บังคับ
รายการไฟล์ที่จะใช้เป็นแพตช์หลังจากแตกไฟล์ที่เก็บถาวร โดยค่าเริ่มต้น โมเดลจะใช้การติดตั้งแพตช์ของ Bazel ซึ่งไม่รองรับการจับคู่ Fuzz Match และแพตช์ไบนารี แต่ Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์หากมีการระบุแอตทริบิวต์ "patch_tool" หรือมีอาร์กิวเมนต์อื่นที่ไม่ใช่ "-p" ในแอตทริบิวต์ "patch_args" |
remote_patch_strip |
จำนวนเต็ม ไม่บังคับ
จำนวนสแลชนำหน้าที่จะนำออกจากชื่อไฟล์ในแพตช์ระยะไกล |
remote_patches |
พจนานุกรม: สตริง -> String; ไม่บังคับ
แมป URL ของไฟล์แพตช์กับค่าความสมบูรณ์ ระบบจะใช้ค่าดังกล่าวหลังจากแยกที่เก็บถาวรและก่อนใช้ไฟล์แพตช์จากแอตทริบิวต์ "patches" โดยใช้การติดตั้งใช้งานแพตช์ Bazel เนทีฟ คุณระบุหมายเลขแถบแพตช์ได้ด้วย "remote_patch_strip" |
repo_mapping |
พจนานุกรม: สตริง -> String; ต้องระบุ
พจนานุกรมจากชื่อที่เก็บในเครื่องเป็นชื่อที่เก็บส่วนกลาง การดำเนินการนี้ช่วยให้ควบคุมความละเอียดของทรัพยากร Dependency ของที่เก็บนี้ได้ เช่น รายการ `"@foo": "@bar"` จะประกาศว่า ไม่ว่าเมื่อใดที่เก็บนี้จะขึ้นอยู่กับ "@foo" (เช่น การพึ่งพา "@foo//some:target" ควรแก้ไขการขึ้นต่อกันภายใน "@bar" ที่ประกาศทั่วโลก ("@bar//some:target`) |
sha256 |
String; ไม่บังคับ
SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ SHA-256 ของไฟล์ที่ดาวน์โหลด _มีความเสี่ยงด้านความปลอดภัย ที่จะละเว้น SHA-256 เพราะไฟล์ระยะไกลสามารถเปลี่ยนแปลงได้_ จะทำให้บิลด์ของคุณไม่ใช่สุญญากาศ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "ความสมบูรณ์" ก่อนจัดส่ง |
strip_prefix |
String; ไม่บังคับ
คำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่ประกอบไปด้วย ในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีก ใน "build_file" ฟิลด์นี้สามารถใช้เพื่อตัดออกจาก ไฟล์ที่แยกแล้ว ตัวอย่างเช่น สมมติว่าคุณใช้ "foo-lib- วันล่าสุด.zip" ซึ่งมีพารามิเตอร์ ไดเรกทอรี "foo-lib-1.2.3/" ใต้ที่มีไฟล์ "WORKSPACE" และ ไดเรกทอรี `src/`, `lib/` และ `test/` ที่มีโค้ดจริงที่คุณ ต้องการสร้าง ระบุ `strip_prefix = "foo-lib-1.2.3"` เพื่อใช้ ไดเรกทอรี "foo-lib-1.2.3" เป็นไดเรกทอรีระดับบนสุด โปรดทราบว่าหากมีไฟล์นอกไดเรกทอรีนี้ ไฟล์จะ ถูกทิ้งและไม่สามารถเข้าถึงได้ (เช่น ไฟล์ใบอนุญาตระดับบนสุด) ซึ่งรวมถึง ไฟล์/ไดเรกทอรีที่เริ่มต้นด้วยคำนำหน้าแต่ไม่อยู่ในไดเรกทอรี (เช่น `foo-lib-1.2.3.release-notes`). หากคำนำหน้าที่ระบุไม่ จับคู่ไดเรกทอรีในที่เก็บถาวร Bazel จะแสดงผลข้อผิดพลาด |
type |
String; ไม่บังคับ
ประเภทที่เก็บถาวรของไฟล์ที่ดาวน์โหลด โดยค่าเริ่มต้น ประเภทที่เก็บถาวรจะพิจารณาจากนามสกุลไฟล์ของ URL หากไฟล์ไม่มีนามสกุล คุณสามารถระบุ ต่อไปนี้: `"zip"`, `"jar"`, `"war"`, `"aar"`, `"tar"`, `"tar.gz"`, `"tgz"`, `"tar.xz"`, `"txz"`, `"tar.zst"`, `"tzst"`, `"tar.bz2"`, `"ar"` หรือ `"deb"` |
url |
String; ไม่บังคับ
URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ URL นี้ต้องเป็นไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ พารามิเตอร์ url ที่ช่วยให้ เพื่อระบุ URL ทางเลือกที่จะดึงข้อมูล |
urls |
รายการสตริง ไม่บังคับ
รายการ URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ แต่ละรายการต้องเป็น URL ของไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ จะมีการพยายามใช้ URL ตามลำดับจนกว่าจะสำเร็จ คุณจึงควรแสดงรายการมิเรอร์ในเครื่องก่อน หากดาวน์โหลดทั้งหมดไม่สำเร็จ กฎก็จะล้มเหลว |
workspace_file |
ป้ายกำกับ ไม่บังคับ
ไฟล์ที่จะใช้เป็นไฟล์ "WORKSPACE" สำหรับที่เก็บนี้ ต้องระบุ "workspace_file" หรือ "workspace_file_content" หรือจะระบุทั้ง 2 อย่างไม่ได้ |
workspace_file_content |
String; ไม่บังคับ
เนื้อหาของไฟล์ WORKSPACE สำหรับที่เก็บนี้ ต้องระบุ "workspace_file" หรือ "workspace_file_content" หรือจะระบุทั้ง 2 อย่างไม่ได้ |
http_file
http_file(name, auth_patterns, canonical_id, downloaded_file_path, executable, integrity, netrc, repo_mapping, sha256, url, urls)
ดาวน์โหลดไฟล์จาก URL และทำให้สามารถใช้เป็นไฟล์ได้ กลุ่ม
ตัวอย่าง: สมมติว่าคุณมีแพ็กเกจ Debian สำหรับกฎที่กำหนดเอง แพ็กเกจนี้ มีให้บริการใน http://example.com/package.deb จากนั้นคุณสามารถเพิ่ม ไฟล์ WORKSPACE:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
http_file(
name = "my_deb",
url = "http://example.com/package.deb",
sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
)
เป้าหมายจะระบุ @my_deb//file
เป็นทรัพยากร Dependency เพื่ออ้างอิงไฟล์นี้
Attributes
name |
ชื่อ ต้องระบุ
ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้ |
auth_patterns |
พจนานุกรม: สตริง -> String; ไม่บังคับ
ไม่บังคับให้แมปชื่อโฮสต์กับรูปแบบการให้สิทธิ์ที่กำหนดเอง
หากมีชื่อโฮสต์ของ URL ในคำสั่งนี้ ระบบจะใช้ค่านี้เป็นรูปแบบเมื่อ
สร้างส่วนหัวการให้สิทธิ์สำหรับคำขอ HTTP ซึ่งทำให้สามารถใช้ตัวเลือกที่กำหนดเอง
แผนการให้สิทธิ์ซึ่งใช้ในผู้ให้บริการพื้นที่เก็บข้อมูลระบบคลาวด์ทั่วไปหลายราย
ขณะนี้รูปแบบรองรับโทเค็น 2 รายการ ได้แก่ auth_patterns = { "storage.cloudprovider.com": "Bearer <password>" }netrc: วันที่ machine storage.cloudprovider.com password RANDOM-TOKENคำขอ HTTP สุดท้ายจะมีส่วนหัวดังต่อไปนี้ Authorization: Bearer RANDOM-TOKEN |
canonical_id |
String; ไม่บังคับ
รหัส Canonical ของไฟล์ที่ดาวน์โหลด หากระบุไว้และไม่ว่างเปล่า Bazel จะไม่นำไฟล์ออกจากแคช เว้นแต่ว่า ถูกเพิ่มลงในแคชโดยคำขอที่มีรหัส Canonical เดียวกัน หากไม่ระบุหรือเว้นว่างไว้ โดยค่าเริ่มต้น Bazel จะใช้ URL ของไฟล์เป็น รหัส Canonical วิธีนี้ช่วยตรวจจับข้อผิดพลาดทั่วไปของการอัปเดต URL โดยไม่มี อัปเดตแฮชด้วย ซึ่งทำให้บิลด์ที่ประสบความสำเร็จในเครื่องแต่ล้มเหลว ที่ไม่มีไฟล์ในแคช คุณสามารถปิดการทำงานในลักษณะนี้ได้ด้วย --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0. |
downloaded_file_path |
String; ไม่บังคับ
เส้นทางที่กำหนดให้กับไฟล์ที่ดาวน์โหลด |
executable |
บูลีน ไม่บังคับ
ไฟล์ที่ดาวน์โหลดมาควรเป็นไฟล์ปฏิบัติการหรือไม่ |
integrity |
String; ไม่บังคับ
checksum ที่คาดไว้ในรูปแบบความสมบูรณ์ของทรัพยากรย่อยของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด _มีความเสี่ยงด้านความปลอดภัย ที่จะละเว้นการตรวจสอบข้อผิดพลาด เนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้_ จะทำให้บิลด์ของคุณไม่ใช่สุญญากาศ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "sha256" ก่อนจัดส่ง |
netrc |
String; ไม่บังคับ
ตำแหน่งของไฟล์ .netrc ที่จะใช้สำหรับการตรวจสอบสิทธิ์ |
repo_mapping |
พจนานุกรม: สตริง -> String; ต้องระบุ
พจนานุกรมจากชื่อที่เก็บในเครื่องเป็นชื่อที่เก็บส่วนกลาง การดำเนินการนี้ช่วยให้ควบคุมความละเอียดของทรัพยากร Dependency ของที่เก็บนี้ได้ เช่น รายการ `"@foo": "@bar"` จะประกาศว่า ไม่ว่าเมื่อใดที่เก็บนี้จะขึ้นอยู่กับ "@foo" (เช่น การพึ่งพา "@foo//some:target" ควรแก้ไขการขึ้นต่อกันภายใน "@bar" ที่ประกาศทั่วโลก ("@bar//some:target`) |
sha256 |
String; ไม่บังคับ
SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ SHA-256 ของไฟล์ที่ดาวน์โหลด _มีความเสี่ยงด้านความปลอดภัย ที่จะละเว้น SHA-256 เพราะไฟล์ระยะไกลสามารถเปลี่ยนแปลงได้_ จะทำให้บิลด์ของคุณไม่ใช่สุญญากาศ คุณเลือกได้ว่าจะให้การพัฒนา แต่ควรตั้งค่าก่อนจัดส่ง |
url |
String; ไม่บังคับ
URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ URL นี้ต้องเป็นไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ พารามิเตอร์ url ที่ช่วยให้ เพื่อระบุ URL ทางเลือกที่จะดึงข้อมูล |
urls |
รายการสตริง ไม่บังคับ
รายการ URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ แต่ละรายการต้องเป็น URL ของไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ จะมีการพยายามใช้ URL ตามลำดับจนกว่าจะสำเร็จ คุณจึงควรแสดงรายการมิเรอร์ในเครื่องก่อน หากดาวน์โหลดทั้งหมดไม่สำเร็จ กฎก็จะล้มเหลว |
http_jar
http_jar(name, auth_patterns, canonical_id, downloaded_file_name, integrity, netrc, repo_mapping, sha256, url, urls)
ดาวน์โหลด Jar จาก URL และทำให้ใช้งานได้เป็น java_import
ไฟล์ที่ดาวน์โหลดต้องมีนามสกุล .jar
ตัวอย่าง:
สมมติว่าที่เก็บปัจจุบันมีซอร์สโค้ดสำหรับโปรแกรมแชท ซึ่งรูทที่
ไดเรกทอรี ~/chat-app
จำเป็นต้องใช้ไลบรารี SSL ที่พร้อมใช้งานจาก
http://example.com/openssl-0.2.jar
เป้าหมายในที่เก็บ ~/chat-app
อาจขึ้นอยู่กับเป้าหมายนี้หากบรรทัดต่อไปนี้
เพิ่มลงใน ~/chat-app/WORKSPACE
:
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",
)
เป้าหมายจะระบุ @my_ssl//jar
เป็นทรัพยากร Dependency เพื่ออ้างอิง Jar นี้
คุณอาจอ้างอิงไฟล์ในระบบปัจจุบัน (localhost) โดยใช้ "file:///path/to/file" ได้เช่นกัน
หากใช้ระบบ Unix หากใช้ Windows ให้ใช้ "file:///c:/path/to/file" ในทั้ง 2 รูปแบบ
ตัวอย่างเช่น โปรดสังเกตเครื่องหมายทับ 3 อย่าง (/
) โดย 2 รายการแรกเป็นของ file://
และรายการที่ 3
ส่วนแรกจะอยู่ในเส้นทางสัมบูรณ์ไปยังไฟล์
Attributes
name |
ชื่อ ต้องระบุ
ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้ |
auth_patterns |
พจนานุกรม: สตริง -> String; ไม่บังคับ
ไม่บังคับให้แมปชื่อโฮสต์กับรูปแบบการให้สิทธิ์ที่กำหนดเอง
หากมีชื่อโฮสต์ของ URL ในคำสั่งนี้ ระบบจะใช้ค่านี้เป็นรูปแบบเมื่อ
สร้างส่วนหัวการให้สิทธิ์สำหรับคำขอ HTTP ซึ่งทำให้สามารถใช้ตัวเลือกที่กำหนดเอง
แผนการให้สิทธิ์ซึ่งใช้ในผู้ให้บริการพื้นที่เก็บข้อมูลระบบคลาวด์ทั่วไปหลายราย
ขณะนี้รูปแบบรองรับโทเค็น 2 รายการ ได้แก่ auth_patterns = { "storage.cloudprovider.com": "Bearer <password>" }netrc: วันที่ machine storage.cloudprovider.com password RANDOM-TOKENคำขอ HTTP สุดท้ายจะมีส่วนหัวดังต่อไปนี้ Authorization: Bearer RANDOM-TOKEN |
canonical_id |
String; ไม่บังคับ
รหัส Canonical ของไฟล์ที่ดาวน์โหลด หากระบุไว้และไม่ว่างเปล่า Bazel จะไม่นำไฟล์ออกจากแคช เว้นแต่ว่า ถูกเพิ่มลงในแคชโดยคำขอที่มีรหัส Canonical เดียวกัน หากไม่ระบุหรือเว้นว่างไว้ โดยค่าเริ่มต้น Bazel จะใช้ URL ของไฟล์เป็น รหัส Canonical วิธีนี้ช่วยตรวจจับข้อผิดพลาดทั่วไปของการอัปเดต URL โดยไม่มี อัปเดตแฮชด้วย ซึ่งทำให้บิลด์ที่ประสบความสำเร็จในเครื่องแต่ล้มเหลว ที่ไม่มีไฟล์ในแคช คุณสามารถปิดการทำงานในลักษณะนี้ได้ด้วย --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0. |
downloaded_file_name |
String; ไม่บังคับ
ชื่อไฟล์ที่กำหนดให้กับ Jar ที่ดาวน์โหลด |
integrity |
String; ไม่บังคับ
checksum ที่คาดไว้ในรูปแบบความสมบูรณ์ของทรัพยากรย่อยของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด _มีความเสี่ยงด้านความปลอดภัย ที่จะละเว้นการตรวจสอบข้อผิดพลาด เนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้_ จะทำให้บิลด์ของคุณไม่ใช่สุญญากาศ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "sha256" ก่อนจัดส่ง |
netrc |
String; ไม่บังคับ
ตำแหน่งของไฟล์ .netrc ที่จะใช้สำหรับการตรวจสอบสิทธิ์ |
repo_mapping |
พจนานุกรม: สตริง -> String; ต้องระบุ
พจนานุกรมจากชื่อที่เก็บในเครื่องเป็นชื่อที่เก็บส่วนกลาง การดำเนินการนี้ช่วยให้ควบคุมความละเอียดของทรัพยากร Dependency ของที่เก็บนี้ได้ เช่น รายการ `"@foo": "@bar"` จะประกาศว่า ไม่ว่าเมื่อใดที่เก็บนี้จะขึ้นอยู่กับ "@foo" (เช่น การพึ่งพา "@foo//some:target" ควรแก้ไขการขึ้นต่อกันภายใน "@bar" ที่ประกาศทั่วโลก ("@bar//some:target`) |
sha256 |
String; ไม่บังคับ
SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ SHA-256 ของไฟล์ที่ดาวน์โหลด _มีความเสี่ยงด้านความปลอดภัย ที่จะละเว้น SHA-256 เพราะไฟล์ระยะไกลสามารถเปลี่ยนแปลงได้_ จะทำให้บิลด์ของคุณไม่ใช่สุญญากาศ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "ความสมบูรณ์" ก่อนจัดส่ง |
url |
String; ไม่บังคับ
URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ URL นี้ต้องเป็นไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ พารามิเตอร์ url ที่ช่วยให้ เพื่อระบุ URL ทางเลือกที่จะดึงข้อมูล URL ต้องลงท้ายด้วย ".jar" |
urls |
รายการสตริง ไม่บังคับ
รายการ URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ แต่ละรายการต้องเป็น URL ของไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ จะมีการพยายามใช้ URL ตามลำดับจนกว่าจะสำเร็จ คุณจึงควรแสดงรายการมิเรอร์ในเครื่องก่อน หากดาวน์โหลดทั้งหมดไม่สำเร็จ กฎก็จะล้มเหลว URL ทั้งหมดต้องลงท้ายด้วย ".jar" |