MODULE.bazel 文件中可用的方法。
成员
- archive_override
- bazel_dep
- git_override
- 包括
- inject_repo
- local_path_override
- 模块
- multiple_version_override
- override_repo
- register_execution_platforms
- register_toolchains
- single_version_override
- use_extension
- use_repo
- use_repo_rule
archive_override
None
archive_override(module_name, **kwargs)
http_archive
规则提供支持。
此指令仅在根模块中生效;换句话说,如果某个模块被其他模块用作依赖项,则其自身的替换项会被忽略。
参数
参数 | 说明 |
---|---|
module_name
|
string;
必需 要应用此替换项的 Bazel 模块依赖项的名称。 |
kwargs
|
必需 所有其他实参都会转发给底层 http_archive repo 规则。请注意,不应指定 name 属性;请改用 module_name 。
|
bazel_dep
None
bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
参数
参数 | 说明 |
---|---|
name
|
string;
必需 要添加为直接依赖项的模块的名称。 |
version
|
string;
default is '' The version of the module to be added as a direct dependency. |
max_compatibility_level
|
int;
默认值为 -1 添加为直接依赖项的模块支持的最大 compatibility_level 。模块的版本表示支持的最低 compatibility_level,如果未指定此属性,则还表示支持的最高 compatibility_level。
|
repo_name
|
字符串;默认值为 '' 表示相应依赖项的外部代码库的名称。默认情况下,这是模块的名称。 |
dev_dependency
|
布尔值;
默认值为 False 如果为 true,则当当前模块不是根模块或启用了 `--ignore_dev_dependency` 时,系统会忽略此依赖项。 |
git_override
None
git_override(module_name, **kwargs)
git_repository
规则提供支持。
此指令仅在根模块中生效;换句话说,如果某个模块被其他模块用作依赖项,则其自身的替换项会被忽略。
参数
参数 | 说明 |
---|---|
module_name
|
string;
必需 要应用此替换项的 Bazel 模块依赖项的名称。 |
kwargs
|
必需 所有其他实参都会转发给底层 git_repository 代码库规则。请注意,不应指定 name 属性;请改用 module_name 。
|
包含
None
include(label)
include()
的行为就像是包含的文件以文本形式放置在 include()
调用的位置一样,只不过变量绑定(例如用于 use_extension
的变量绑定)仅在它们所在的文件中可见,而不会在任何包含或被包含的文件中可见。只有根模块可以使用 include()
;如果 bazel_dep
的 MODULE 文件使用 include()
,则会出错。
只能包含主代码库中的文件。
include()
可让您将根模块文件分段为多个部分,以避免出现巨大的 MODULE.bazel 文件,或更好地管理各个语义段的访问权限控制。
参数
参数 | 说明 |
---|---|
label
|
字符串;
必需 指向要包含的文件的标签。标签必须指向主代码库中的文件;换句话说,标签必须以双斜杠 ( // ) 开头。文件名必须以 .MODULE.bazel 结尾,且不得以 . 开头。
|
inject_repo
None
inject_repo(extension_proxy, *args, **kwargs)
--ignore_dev_dependency
,则忽略此参数。
请改用 override_repo
替换现有代码库。
参数
参数 | 说明 |
---|---|
extension_proxy
|
module_extension_proxy;
required 由 use_extension 调用返回的模块扩展代理对象。
|
args
|
必需 当前模块中可见的应注入到扩展程序中的代码库(名称相同)。 |
kwargs
|
必需 要注入到扩展程序中的新代码库,其中值是当前模块范围内的代码库名称,键是它们在扩展程序中显示的名称。 |
local_path_override
None
local_path_override(module_name, path)
local_repository
规则提供支持。
此指令仅在根模块中生效;换句话说,如果某个模块被其他模块用作依赖项,则其自身的替换项会被忽略。
参数
参数 | 说明 |
---|---|
module_name
|
string;
必需 要应用此替换项的 Bazel 模块依赖项的名称。 |
path
|
string;
必需 相应模块所在的目录的路径。 |
module
None
module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])
此指令最多只能调用一次,如果调用,则必须是 MODULE.bazel 文件中的第一个指令。只有当相应模块是根模块(即不会被其他模块依赖)时,才能省略此属性。
参数
参数 | 说明 |
---|---|
name
|
字符串;
默认值为 '' 模块的名称。只有当相应模块是根模块(即不会被其他模块依赖)时,才能省略此属性。有效的模块名称必须符合以下条件:1) 只能包含小写字母 (a-z)、数字 (0-9)、句点 (.)、连字符 (-) 和下划线 (_);2) 以小写字母开头;3) 以小写字母或数字结尾。 |
version
|
string;
默认值为 '' 模块的版本。只有当相应模块是根模块(即不会被其他模块依赖)时,才能省略此属性。版本必须采用宽松的 SemVer 格式;如需了解详情,请参阅文档。 |
compatibility_level
|
int;
默认值为 0 模块的兼容性级别;每次引入重大不兼容的更改时,都应更改此值。从 SemVer 的角度来看,这实际上是模块的“主要版本”,只不过它不是嵌入在版本字符串本身中,而是作为单独的字段存在。具有不同兼容性级别的模块会像具有不同名称的模块一样参与版本解析,但最终的依赖关系图不能包含多个名称相同但兼容性级别不同的模块(除非 multiple_version_override 生效)。如需了解详情,请参阅文档。
|
repo_name
|
字符串;
默认值为 '' 表示相应模块的代码库的名称(模块本身所看到的名称)。默认情况下,代码库的名称与模块的名称相同。可以指定此属性,以便于迁移那些一直使用与模块名称不同的代码库名称的项目。 |
bazel_compatibility
|
字符串的可迭代对象;
默认值为 [] 一个 Bazel 版本列表,允许用户声明哪些 Bazel 版本与此模块兼容。它不会影响依赖项解析,但 bzlmod 会使用此信息来检查您当前的 Bazel 版本是否兼容。此值的格式为以英文逗号分隔的某些限制值组成的字符串。支持以下三种限制:<=X.X.X:Bazel 版本必须等于或低于 X.X.X。当较新版本中存在已知的不兼容变更时使用。>=X.X.X:Bazel 版本必须等于或高于 X.X.X。当您依赖于仅自 X.X.X 起可用的某些功能时使用。-X.X.X:Bazel 版本 X.X.X 不兼容。如果 X.X.X 中存在导致您无法正常使用的 bug,但在后续版本中已修复,则使用此值。 |
multiple_version_override
None
multiple_version_override(module_name, versions, registry='')
参数
参数 | 说明 |
---|---|
module_name
|
string;
必需 要应用此替换项的 Bazel 模块依赖项的名称。 |
versions
|
字符串的可迭代对象;必需 明确指定允许共存的版本。这些版本必须已存在于预选的依赖关系图中。此模块的依赖项将“升级”到同一兼容性级别中最近的更高允许版本,而版本高于同一兼容性级别中任何允许版本的依赖项将导致错误。 |
registry
|
字符串;
默认值为 '' 替换相应模块的注册表;不从默认注册表列表中查找相应模块,而是使用给定的注册表。 |
override_repo
None
override_repo(extension_proxy, *args, **kwargs)
请改用 inject_repo
添加新代码库。
参数
参数 | 说明 |
---|---|
extension_proxy
|
module_extension_proxy;
required 由 use_extension 调用返回的模块扩展代理对象。
|
args
|
必需 扩展程序中应被当前模块中同名代码库替换的代码库。 |
kwargs
|
必需 要应用于扩展程序所生成代码库的替换项,其中值是当前模块范围内的代码库名称,键是它们将在扩展程序中替换的代码库名称。 |
register_execution_platforms
None
register_execution_platforms(dev_dependency=False, *platform_labels)
@
或 //
开头)。如需了解详情,请参阅工具链解析。扩展为多个目标的模式(例如 :all
)将按名称的字典顺序注册。
参数
参数 | 说明 |
---|---|
dev_dependency
|
bool;
默认值为 False 如果为 true,则当当前模块不是根模块或启用了 `--ignore_dev_dependency` 时,不会注册执行平台。 |
platform_labels
|
字符串的序列;必需 要注册的目标模式。 |
register_toolchains
None
register_toolchains(dev_dependency=False, *toolchain_labels)
@
或 //
开头)。如需了解详情,请参阅工具链解析。扩展为多个目标的模式(例如 :all
)将按目标名称(而非工具链实现名称)以字典顺序注册。
参数
参数 | 说明 |
---|---|
dev_dependency
|
bool;
默认值为 False 如果为 true,则当当前模块不是根模块或启用了 `--ignore_dev_dependency` 时,不会注册工具链。 |
toolchain_labels
|
字符串的序列;必需 要注册的目标模式。 |
single_version_override
None
single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)
参数
参数 | 说明 |
---|---|
module_name
|
string;
必需 要应用此替换项的 Bazel 模块依赖项的名称。 |
version
|
字符串;
默认值为 '' 替换依赖关系图中相应模块的声明版本。换句话说,此模块将“固定”到此替换版本。如果只想替换注册表或补丁,则可以忽略此属性。 |
registry
|
字符串;
默认值为 '' 替换相应模块的注册表;不从默认注册表列表中查找相应模块,而是使用给定的注册表。 |
patches
|
字符串的可迭代对象;
默认值为 [] 指向要为此模块应用的补丁文件的标签列表。补丁文件必须存在于顶级项目的源代码树中。它们会按列表顺序应用。 如果补丁对 MODULE.bazel 文件进行了更改,则只有在根模块提供补丁文件的情况下,这些更改才会生效。 |
patch_cmds
|
字符串的可迭代对象;默认值为 [] 在应用补丁后要在 Linux/macOS 上应用的一系列 Bash 命令。 对 MODULE.bazel 文件所做的更改不会生效。 |
patch_strip
|
int;
default is 0 Same as the --strip argument of Unix patch. |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)
参数
参数 | 说明 |
---|---|
extension_bzl_file
|
string; 必需 定义模块扩展程序的 Starlark 文件的标签。 |
extension_name
|
string;
必需 要使用的模块扩展程序的名称。具有此名称的符号必须由 Starlark 文件导出。 |
dev_dependency
|
布尔值;
默认值为 False 如果为 true,则当当前模块不是根模块或启用了 `--ignore_dev_dependency` 时,系统会忽略此模块扩展用法。 |
isolate
|
布尔值;
默认值为 False 实验性。此参数目前处于实验阶段,随时可能发生变化。请勿依赖此功能。您可以通过设置 --experimental_isolated_extension_usages 以实验性方式启用它。如果为 true,则此模块扩展的使用将与此模块和其他模块中的所有其他使用隔离。为此使用场景创建的代码不会影响其他使用场景,并且扩展程序为此使用场景生成的代码库将不同于扩展程序生成的所有其他代码库。 此参数目前处于实验阶段,仅在设置了 |
use_repo
None
use_repo(extension_proxy, *args, **kwargs)
参数
参数 | 说明 |
---|---|
extension_proxy
|
module_extension_proxy;
required 由 use_extension 调用返回的模块扩展代理对象。
|
args
|
必需 要导入的代码库的名称。 |
kwargs
|
必需 指定要以不同名称导入到当前模块范围内的特定代码库。键应为要在当前作用域中使用的名称,而值应为模块扩展程序导出的原始名称。 |
use_repo_rule
repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)
name
属性声明的名称。隐式布尔值 dev_dependency
属性也可用于代理,以表示仅当当前模块是根模块时才创建某个仓库。
参数
参数 | 说明 |
---|---|
repo_rule_bzl_file
|
字符串;
必需 用于定义代码库规则的 Starlark 文件的标签。 |
repo_rule_name
|
字符串;
必需 要使用的 repo 规则的名称。具有此名称的符号必须由 Starlark 文件导出。 |