โหลดฟังก์ชันต่อไปนี้ได้จาก
@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)
หรือจะเรียกใช้กฎของ repo เหล่านี้โดยตรงในไฟล์ 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 อยู่แล้วพร้อมใช้งานเป็นรีโป ไดเรกทอรีนี้ควรมีไฟล์ BUILD ของ Bazel และไฟล์ขอบเขตของ repo อยู่แล้ว หากไม่มีไฟล์เหล่านี้ ให้พิจารณาใช้ <a href="#new_local_repository"><code>new_local_repository</code></a> แทน
Attributes
name |
ชื่อ ต้องระบุ
ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้ |
path |
สตริง ต้องระบุ
เส้นทางไปยังไดเรกทอรีที่จะใช้เป็นที่เก็บ เส้นทางอาจเป็นเส้นทางสัมบูรณ์หรือสัมพัทธ์กับรูทของพื้นที่ทำงานก็ได้ |
repo_mapping |
Dictionary: String -> String; ต้องระบุ
พจนานุกรมจากชื่อที่เก็บในเครื่องเป็นชื่อที่เก็บส่วนกลาง ซึ่งช่วยให้ควบคุมการแก้ไขข้อกำหนดของพื้นที่ทำงานสำหรับข้อกำหนดของที่เก็บข้อมูลนี้ได้ ตัวอย่างเช่น รายการ `"@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 หรือไฟล์ขอบเขตของ repo เนื่องจากกฎของ repo จะสร้างไฟล์เหล่านี้ให้ หากไดเรกทอรีมีไฟล์ Bazel อยู่แล้ว ให้พิจารณาใช้ <a href="#local_repository"><code>local_repository</code></a> แทน
Attributes
name |
ชื่อ ต้องระบุ
ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้ |
build_file |
ป้ายกํากับ (ไม่บังคับ)
ไฟล์ที่จะใช้เป็นไฟล์ BUILD สําหรับที่เก็บข้อมูลนี้ ต้องระบุ ไฟล์ที่ระบุด้วยป้ายกำกับนี้ไม่จำเป็นต้องมีชื่อว่า BUILD แต่สามารถเป็นชื่ออื่นได้ การใช้ชื่ออย่าง |
build_file_content |
สตริง ไม่บังคับ
เนื้อหาของไฟล์ BUILD ที่จะสร้างสำหรับรีโปนี้ ต้องระบุ |
path |
สตริง ต้องระบุ
เส้นทางไปยังไดเรกทอรีที่จะใช้เป็นที่เก็บ เส้นทางอาจเป็นเส้นทางสัมบูรณ์หรือสัมพัทธ์กับรูทของพื้นที่ทำงานก็ได้ |
repo_mapping |
Dictionary: String -> String; ต้องระบุ
พจนานุกรมจากชื่อที่เก็บในเครื่องเป็นชื่อที่เก็บส่วนกลาง ซึ่งช่วยให้ควบคุมการแก้ไขข้อกำหนดของพื้นที่ทำงานสำหรับข้อกำหนดของที่เก็บข้อมูลนี้ได้ ตัวอย่างเช่น รายการ `"@foo": "@bar"` ประกาศว่าเมื่อใดก็ตามที่ที่เก็บข้อมูลนี้ใช้@foo (เช่น ใช้@foo//some:target) ก็ควรแก้ไขการพึ่งพานั้นภายใน@bar ที่ประกาศไว้ทั่วโลก ("@bar//some:target") |