MODULE.bazel 文件

报告问题

本页面包含 MODULE.bazel 文件中提供的全局方法。

会员

归档替换

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

指定此依赖项应来自特定位置的归档文件(zip、gzip 等),而不是来自注册表。此指令只能供根模块使用;也就是说,如果模块指定了任何替换值,就无法将其用作依赖项。

参数

参数 说明
module_name 必需
要应用此替换项的 Bazel 模块依赖项的名称。
urls string; or Iterable of strings;必需
归档的网址;可以是 http(s):// 或 file:// 网址。
integrity default = ''
归档文件的预期校验和,采用子资源完整性格式。
strip_prefix default = ''
要从提取的文件中移除的目录前缀。
patches Iterable of strings; default = []
指向可应用于此模块的补丁文件的标签列表。补丁文件必须存在于顶级项目的源代码树中。它们会按照列表顺序进行应用。
patch_cmds Iterable of strings; default = []
在应用补丁后,要在 Linux/Macos 上应用的 Bash 命令序列。
patch_strip default = 0
与 Unix 补丁的 --strip 参数相同。

Bazel_dep

None bazel_dep(name, version='', repo_name='', dev_dependency=False)

声明对另一个 Bazel 模块的直接依赖项。

参数

参数 说明
name 必需
要作为直接依赖项添加的模块的名称。
version default = ''
要作为直接依赖项添加的模块版本。
repo_name default = ''
表示此依赖项的外部代码库的名称。默认情况下,这是模块的名称。
dev_dependency default = False
如果为 true,则如果当前模块不是根模块或启用了“--ignore_dev_dependency”,则会忽略此依赖项。

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)

指定依赖项应来自 Git 代码库的特定提交。此指令只能供根模块使用;也就是说,如果模块指定了任何替换值,就无法将其用作依赖项。

参数

参数 说明
module_name 必需
要应用此替换项的 Bazel 模块依赖项的名称。
remote 必需
远程 Git 代码库的网址。
commit default = ''
应签出的提交。
patches Iterable of strings; default = []
指向可应用于此模块的补丁文件的标签列表。补丁文件必须存在于顶级项目的源代码树中。它们会按照列表顺序进行应用。
patch_cmds Iterable of strings; default = []
在应用补丁后,要在 Linux/Macos 上应用的 Bash 命令序列。
patch_strip default = 0
与 Unix 补丁的 --strip 参数相同。

local_path_override

None local_path_override(module_name, path)

指定依赖项应来自本地磁盘上的特定目录。此指令只能供根模块使用;也就是说,如果模块指定了任何替换值,就无法将其用作依赖项。

参数

参数 说明
module_name 必需
要应用此替换项的 Bazel 模块依赖项的名称。
path 必需
此模块所在目录的路径。

模块

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

声明由当前 Bazel 代码库表示的 Bazel 模块的某些属性。这些属性要么是模块的重要元数据(例如名称和版本),要么会影响当前模块及其依赖项的行为。

最多只能调用一次。只有当此模块为根模块(例如,它不依赖于其他模块)时,才能省略此参数。

参数

参数 说明
name default = ''
模块的名称。仅当此模块是根模块(例如,本模块不依赖于其他模块)时,才能省略。有效的模块名称必须符合以下条件:1) 只能包含小写字母 (a-z)、数字 (0-9)、点 (.)、连字符 (-) 和下划线 (_);2) 以小写字母开头;3) 以小写字母或数字结尾。
version default = ''
模块的版本。仅当此模块是根模块(例如,本模块不依赖于其他模块)时,才能省略。版本必须采用宽松的 SemVer 格式;如需了解详情,请参阅文档
compatibility_level default = 0
模块的兼容性级别;每当引入不兼容的更改时,都应更改此模块。就 SemVer 而言,这基本上是该模块的“主要版本”,只不过它未嵌入到版本字符串中,而是作为一个单独的字段存在。具有不同兼容性级别的模块会参与版本解析,就像它们是具有不同名称的模块一样,但最终依赖项图不能包含多个名称相同但兼容性级别不同的模块(除非 multiple_version_override 有效)。如需了解详情,请参阅这份文档
repo_name default = ''
表示此模块的代码库的名称,如模块本身所示。默认情况下,代码库的名称是模块的名称。指定此参数是为了便于为已使用自己的代码库名称与其模块名称不同的项目进行迁移。
bazel_compatibility Iterable of strings; default = []
Bazel 版本的列表,可让用户声明哪些 Bazel 版本与此模块兼容。这不会影响依赖项解析,但 bzlmod 将使用此信息检查您当前的 Bazel 版本是否兼容。此值的格式是一些限制条件值的字符串,以英文逗号分隔。支持以下三种限制条件:<=X.X.X:Bazel 版本必须等于或低于 X.X.X。当新版本存在已知不兼容的变更时,使用此类型。>=X.X.X:Bazel 版本必须等于或高于 X.X.X。如果您依赖的某些功能仅在 X.X.X 之后可用,则使用此选项。BXel 版本 X.X.X 不兼容。在 X.X.X 中存在会破坏您的 bug 但在后续版本中修复的 bug 中使用。

多个版本替换

None multiple_version_override(module_name, versions, registry='')

指定依赖项应仍来自注册表,但应允许其多个版本共存。如需了解详情,请参阅文档。此指令只能供根模块使用;也就是说,如果模块指定了任何替换值,就无法将其用作依赖项。

参数

参数 说明
module_name 必需
要应用此替换项的 Bazel 模块依赖项的名称。
versions Iterable of strings;必需
明确指定允许共存的版本。这些版本必须已经预先选定在依赖关系图中。此模块的依赖项将“升级”到同一兼容性级别最接近的允许的最高版本,而依赖项的兼容性级别高于同一兼容性级别任何允许版本的依赖项会导致错误。
registry default = ''
替换此模块的注册表;应使用默认的注册表,而不是从默认注册表列表中查找此模块。

注册执行平台

None register_execution_platforms(*platform_labels)

指定已选择此模块时要注册的已执行平台。应为绝对目标模式(即以 @// 开头)。如需了解详情,请参阅工具链解决方法

参数

参数 说明
platform_labels sequence of strings;必需
要注册的平台的标签。

注册工具链

None register_toolchains(*toolchain_labels)

指定已选择此模块时要定义的已定义工具链。应为绝对目标模式(即以 @// 开头)。如需了解详情,请参阅工具链解决方法

参数

参数 说明
toolchain_labels sequence of strings;必需
要注册的工具链的标签。

Single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

指定依赖项应仍来自注册表,但其版本应固定、其注册表会被替换,或所应用的补丁列表。此指令只能供根模块使用;也就是说,如果模块指定了任何替换值,就无法将其用作依赖项。

参数

参数 说明
module_name 必需
要应用此替换项的 Bazel 模块依赖项的名称。
version default = ''
替换依赖项图中声明的此模块版本。换句话说,该模块将“固定”到此替换版本。如果只想覆盖注册表或补丁,则可以忽略此属性。
registry default = ''
替换此模块的注册表;应使用默认的注册表,而不是从默认注册表列表中查找此模块。
patches Iterable of strings; default = []
指向可应用于此模块的补丁文件的标签列表。补丁文件必须存在于顶级项目的源代码树中。它们会按照列表顺序进行应用。
patch_cmds Iterable of strings; default = []
在应用补丁后,要在 Linux/Macos 上应用的 Bash 命令序列。
patch_strip default = 0
与 Unix 补丁的 --strip 参数相同。

使用扩展程序

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False)

返回表示模块扩展的代理对象;可以调用其方法来创建模块扩展标记。

参数

参数 说明
extension_bzl_file 必需
用于定义模块扩展的 Starlark 文件的标签。
extension_name 必需
要使用的模块扩展的名称。具有此名称的符号必须由 Starlark 文件导出。
dev_dependency default = False
如果为 true,则当当前模块不是根模块或启用了“--ignore_dev_dependency”时,将忽略此模块扩展的使用。

使用代码库

None use_repo(extension_proxy, *args, **kwargs)

将给定模块扩展生成的一个或多个代码库导入当前模块的范围内。

参数

参数 说明
extension_proxy 必需
use_extension 调用返回的模块扩展代理对象。
args 必需
要导入的代码库的名称。
kwargs 必需
指定要导入到当前模块范围中的具有不同名称的某些代码库。键应为在当前范围内使用的名称,而值应该是模块扩展导出的原始名称。