您可以从
@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 ->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 文件或代码库边界文件;它们将根据此代码库规则创建如果目录已包含 Bazel 文件,请考虑使用 <a href="#local_repository"><code>local_repository</code></a>。
属性
name |
姓名;必需
此代码库的唯一名称。 |
build_file |
标签;可选
用作此代码库的 BUILD 文件的文件。 必须指定 由此标签处理的文件不需要命名为 BUILD,但可以命名。 |
build_file_content |
String;可选
要为此代码库创建的 BUILD 文件的内容。 必须指定 |
path |
String;必需
要用作代码库的目录的路径。 路径可以是绝对路径,也可以是工作区根目录的相对路径。 |
repo_mapping |
字典:String ->String;必需
从本地代码库名称到全局代码库名称的字典。这样,您就可以控制此代码库的依赖项的工作区依赖项解析。 例如,条目 "@foo": "@bar"` 声明,无论何时此仓库依赖于 `@foo`(例如 `@foo//some:target` 的依赖项),它实际上都应在全局声明的 `@bar` (`@bar//some:target`) 中解析该依赖项。 |