กฎที่เก็บในเครื่อง

รายงานปัญหา ดูแหล่งที่มา

ฟังก์ชันต่อไปนี้โหลดได้จาก @bazel_tools//tools/build_defs/repo:local.bzl

กฎสำหรับการทำให้ไดเรกทอรีในระบบไฟล์ในเครื่องใช้เป็นที่เก็บได้

ตั้งค่า

หากต้องการใช้กฎเหล่านี้ในส่วนขยายโมดูล ให้โหลดกฎในไฟล์ .bzl แล้วเรียกใช้กฎจากฟังก์ชันการใช้งานของส่วนขยาย ตัวอย่างเช่น หากต้องการใช้ local_repository:

load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")

def _my_extension_impl(mctx):
  local_repository(name = "foo", path = "foo")

my_extension = module_extension(implementation = _my_extension_impl)

หรือจะเรียกกฎที่เก็บเหล่านี้โดยตรงในไฟล์ MODULE.bazel ด้วย use_repo_rule ดังนี้

local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")

local_repository

local_repository(name, path, repo_mapping)

สร้างไดเรกทอรีในเครื่องที่มีไฟล์ Bazel อยู่แล้วเป็นที่เก็บ ไดเรกทอรีนี้ควรมีไฟล์ Bazel BUILD และไฟล์ขอบเขตของที่เก็บอยู่แล้ว หากไม่มีไฟล์เหล่านี้ ให้พิจารณาใช้ <a href="#new_local_repository"><code>new_local_repository</code></a> แทน

Attributes

name ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้

path สตริง ต้องระบุ

เส้นทางไปยังไดเรกทอรีเพื่อให้ใช้เป็นที่เก็บได้

เส้นทางอาจเป็นแบบสัมบูรณ์หรือสัมพัทธ์กับรูทของพื้นที่ทำงานก็ได้

repo_mapping พจนานุกรม: สตริง -> สตริง ต้องระบุ

พจนานุกรมจากชื่อที่เก็บในเครื่องเป็นชื่อที่เก็บส่วนกลาง การดำเนินการนี้ช่วยให้ควบคุมความละเอียดของทรัพยากร Dependency ของที่เก็บนี้ได้

เช่น รายการ `"@foo": "@bar"` จะประกาศว่า ไม่ว่าเมื่อใดที่เก็บนี้จะขึ้นอยู่กับ "@foo" (เช่น การพึ่งพา "@foo//some:target" ควรแก้ไขการขึ้นต่อกันภายใน "@bar" ที่ประกาศทั่วโลก ("@bar//some:target`)

new_local_repository

new_local_repository(name, build_file, build_file_content, path, repo_mapping)

สร้างไดเรกทอรีในเครื่องที่ไม่มีไฟล์ Bazel เป็นที่เก็บ ไดเรกทอรีนี้ไม่จำเป็นต้องมีไฟล์ Bazel BUILD หรือไฟล์ขอบเขตที่เก็บ ซึ่งจะสร้างขึ้นโดยกฎที่เก็บนี้ ถ้าไดเรกทอรีมีไฟล์ Bazel อยู่แล้ว ให้พิจารณาใช้ <a href="#local_repository"><code>local_repository</code></a> แทน

Attributes

name ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้

build_file ป้ายกำกับ ไม่บังคับ

ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้

ต้องระบุ build_file และ build_file_content เพียง 1 รายการ

ไฟล์ที่ติดป้ายกำกับนี้ไม่จำเป็นต้องมีชื่อว่า BUILD แต่สามารถเป็นได้ บางอย่าง เช่น BUILD.new-repo-name อาจแยกแยะออกจากไฟล์ BUILD จริงได้

build_file_content สตริง ไม่บังคับ

เนื้อหาของไฟล์ BUILD ที่จะสร้างสำหรับที่เก็บนี้

ต้องระบุ build_file และ build_file_content เพียง 1 รายการ

path สตริง ต้องระบุ

เส้นทางไปยังไดเรกทอรีเพื่อให้ใช้เป็นที่เก็บได้

เส้นทางอาจเป็นแบบสัมบูรณ์หรือสัมพัทธ์กับรูทของพื้นที่ทำงานก็ได้

repo_mapping พจนานุกรม: สตริง -> สตริง ต้องระบุ

พจนานุกรมจากชื่อที่เก็บในเครื่องเป็นชื่อที่เก็บส่วนกลาง การดำเนินการนี้ช่วยให้ควบคุมความละเอียดของทรัพยากร Dependency ของที่เก็บนี้ได้

เช่น รายการ `"@foo": "@bar"` จะประกาศว่า ไม่ว่าเมื่อใดที่เก็บนี้จะขึ้นอยู่กับ "@foo" (เช่น การพึ่งพา "@foo//some:target" ควรแก้ไขการขึ้นต่อกันภายใน "@bar" ที่ประกาศทั่วโลก ("@bar//some:target`)