本機存放區規則

回報問題 查看原始碼 。 。 。 。 夜間。 。 7.37.2 。 。 7.1 。 。 7.0 。 。 6.5

您可從下列函式載入下列函式: @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 String;必選

要做為存放區使用的目錄路徑。

路徑可以是絕對路徑,也可以是工作區根目錄的相對路徑。

repo_mapping 字典:字串 ->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 檔案或存放區邊界檔案。系統會依據這個存放區規則建立這些 Pod如果目錄已包含 Bazel 檔案,請考慮使用 <a href="#local_repository"><code>local_repository</code></a>。

屬性

name 名稱;必選

這個存放區的專屬名稱。

build_file 標籤;選用

做為這個存放區 BUILD 檔案的檔案。

必須明確指定 build_filebuild_file_content 其中之一。

由這個標籤指定的檔案不一定要命名為 BUILD,但可以允許。BUILD.new-repo-name 這類元件可能很適合用來與實際的 BUILD 檔案有所區別。

build_file_content String;選用

要為這個存放區建立的 BUILD 檔案內容。

必須明確指定 build_filebuild_file_content 其中之一。

path String;必選

要做為存放區使用的目錄路徑。

路徑可以是絕對路徑,也可以是工作區根目錄的相對路徑。

repo_mapping 字典:字串 ->String;必選

從本機存放區名稱到全域存放區名稱的字典。如此一來,即可控管這個存放區的依附元件的工作區依附元件解決方案。

舉例來說,項目 `"@foo": "@bar"` 會在任何時候這個存放區依附於 `@foo` (例如 `@foo//some:target` 上的依附元件),實際上應在全域宣告的 `@bar` (`@bar//some:target`) 中解析該依附元件。