本機存放區規則

回報問題 查看原始碼 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)

或者,您也可以使用 use_repo_rule 直接在 MODULE.bazel 檔案中呼叫這些存放區規則:

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 檔案和一個存放區邊界檔案。如果不包含這些檔案,請考慮改用 new_local_repository

屬性

name 名稱 (必填)

此存放區的專屬名稱。

path 字串;必填

要提供為存放區的目錄路徑。路徑可以是絕對路徑,也可以是相對於工作區根目錄的相對路徑。

repo_mapping 字典:字串 -> 字串 (選用)

僅限於 `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 檔案或存放區邊界檔案,因為這些檔案會由這個存放區規則建立。如果目錄中已包含 Bazel 檔案,請考慮改用 local_repository

屬性

name 名稱 (必填)

此存放區的專屬名稱。

build_file 標籤 (選用)

這個檔案可用於此存放區的 BUILD 檔案。必須指定 `build_file` 和 `build_file_content` 其中一個。這個標籤所指向的檔案名稱不必是 BUILD,但可以是 BUILD。例如 `BUILD.new-repo-name` 可能會與實際的 BUILD 檔案有所區別。

build_file_content String;選用

要為此存放區建立的 BUILD 檔案內容。必須指定 `build_file` 和 `build_file_content` 其中一個。

path 字串;必填

要提供為存放區的目錄路徑。路徑可以是絕對路徑,也可以是相對於工作區根目錄的相對路徑。

repo_mapping 字典:字串 -> 字串 (選用)

僅限於 `WORKSPACE` 上下文:從本機存放區名稱轉換為全域存放區名稱的字典。這樣就能控管這個存放區依附元件的依附元件解析工作區。舉例來說,如果項目為 `"@foo": "@bar"`,表示此存放區每次依附 `@foo` 時 (例如依附 `@foo//some:target` 的依附元件),實際上應在全域宣告的 `@bar` (`@bar//some:target`) 中解析該依附元件。 `MODULE.bazel` 情境 (在模組擴充功能的實作函式中叫用存放區規則時) _不_支援此屬性。