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

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly 8.1 · 8.0 · 7.5 · 7.4 · 7.3 · 7.2

โหลดฟังก์ชันต่อไปนี้ได้จาก @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

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

local_repository(name, path, repo_mapping)

ทำให้ไดเรกทอรีในเครื่องที่มีไฟล์ Bazel อยู่แล้วพร้อมใช้งานเป็นรีโป ไดเรกทอรีนี้ควรมีไฟล์ Bazel BUILD และไฟล์ขอบเขตของ repo อยู่แล้ว หากไม่มีไฟล์เหล่านี้ ให้ลองใช้ new_local_repository แทน

แอตทริบิวต์

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

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

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

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

repo_mapping Dictionary: String -> String ไม่บังคับ

ในบริบท `WORKSPACE` เท่านั้น: พจนานุกรมจากชื่อที่เก็บข้อมูลในเครื่องไปยังชื่อที่เก็บข้อมูลส่วนกลาง ซึ่งช่วยให้ควบคุมการแก้ไขข้อกำหนดของพื้นที่ทำงานสำหรับข้อกำหนดของที่เก็บข้อมูลนี้ได้ ตัวอย่างเช่น รายการ `"@foo": "@bar"` ประกาศว่าเมื่อใดก็ตามที่ที่เก็บข้อมูลนี้ใช้ "@foo" (เช่น ใช้ "@foo//some:target") ระบบควรแก้ไขการพึ่งพาดังกล่าวภายใน "@bar" ที่ประกาศไว้ทั่วโลก ("@bar//some:target") ระบบไม่รองรับแอตทริบิวต์นี้ในบริบท `MODULE.bazel` (เมื่อเรียกใช้กฎที่เก็บข้อมูลภายในฟังก์ชันการใช้งานของส่วนขยายโมดูล)

new_local_repository

load("@bazel//tools/build_defs/repo:local.bzl", "new_local_repository")

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

ทำให้ไดเรกทอรีในเครื่องที่ไม่มีไฟล์ Bazel พร้อมใช้งานเป็นพื้นที่เก็บข้อมูล ไดเรกทอรีนี้ไม่จำเป็นต้องมีไฟล์ Bazel BUILD หรือไฟล์ขอบเขตของ repo เนื่องจากกฎของ repo จะสร้างไฟล์เหล่านี้ให้ หากไดเรกทอรีมีไฟล์ Bazel อยู่แล้ว ให้พิจารณาใช้ local_repository แทน

แอตทริบิวต์

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

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

build_file ป้ายกํากับ (ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไฟล์ BUILD สําหรับที่เก็บข้อมูลนี้ ต้องระบุค่า "build_file" หรือ "build_file_content" อย่างใดอย่างหนึ่งเท่านั้น ไฟล์ที่ระบุโดยป้ายกำกับนี้ไม่จำเป็นต้องมีชื่อว่า BUILD แต่สามารถเป็นชื่ออื่นได้ ชื่ออย่าง `BUILD.new-repo-name` อาจเหมาะที่จะใช้แยกความแตกต่างจากไฟล์ BUILD จริง

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

เนื้อหาของไฟล์ BUILD ที่จะสร้างสำหรับรีโปนี้ ต้องระบุค่า "build_file" หรือ "build_file_content" อย่างใดอย่างหนึ่งเท่านั้น

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

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

repo_mapping Dictionary: String -> String ไม่บังคับ

ในบริบท `WORKSPACE` เท่านั้น: พจนานุกรมจากชื่อที่เก็บข้อมูลในเครื่องไปยังชื่อที่เก็บข้อมูลส่วนกลาง ซึ่งช่วยให้ควบคุมการแก้ไขข้อกำหนดของพื้นที่ทำงานสำหรับข้อกำหนดของที่เก็บข้อมูลนี้ได้ ตัวอย่างเช่น รายการ `"@foo": "@bar"` ประกาศว่าเมื่อใดก็ตามที่ที่เก็บข้อมูลนี้ใช้ "@foo" (เช่น ใช้ "@foo//some:target") ระบบควรแก้ไขการพึ่งพาดังกล่าวภายใน "@bar" ที่ประกาศไว้ทั่วโลก ("@bar//some:target") ระบบไม่รองรับแอตทริบิวต์นี้ในบริบท `MODULE.bazel` (เมื่อเรียกใช้กฎที่เก็บข้อมูลภายในฟังก์ชันการใช้งานของส่วนขยายโมดูล)