您可以從 @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>。
屬性
name |
名稱 (必填)
這個存放區的專屬名稱。 |
path |
字串;必填
要設為存放區的目錄路徑。 路徑可以是絕對路徑,也可以是相對於工作區根目錄的路徑。 |
repo_mapping |
字典:字串 -> 字串;必要
從本機存放區名稱到全域存放區名稱的字典。這樣就能控管這個存放區依附元件的工作區依附元件解析。 舉例來說,項目 `"@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>。
屬性
name |
名稱 (必填)
這個存放區的專屬名稱。 |
build_file |
標籤 (選填)
要用於這個存放區的 BUILD 檔案。 必須指定 這個標籤所指的檔案不一定要命名為 BUILD,但可以這麼做。例如 |
build_file_content |
字串;選用
要為這個存放區建立的 BUILD 檔案內容。 必須指定 |
path |
字串;必填
要設為存放區的目錄路徑。 路徑可以是絕對路徑,也可以是相對於工作區根目錄的路徑。 |
repo_mapping |
字典:字串 -> 字串;必要
從本機存放區名稱到全域存放區名稱的字典。這樣就能控管這個存放區依附元件的工作區依附元件解析。 舉例來說,項目 `"@foo": "@bar"` 會聲明,每當這個存放區依附於 `@foo` (例如依附於 `@foo//some:target`) 時,實際上應在全域聲明的 `@bar` (`@bar//some:target`) 中解析該依附元件。 |