MODULE.bazel 文件中提供的方法。
成员
- archive_override
- bazel_dep
- git_override
- include
- 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, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)
指定此依赖项应来自特定位置的归档文件(zip、gzip 等),而不是来自注册表。此指令仅在根模块中生效;换句话说,如果某个模块被其他模块用作依赖项,系统会忽略该模块自己的替换项。
参数
参数 | 说明 |
---|---|
module_name
|
required 要应用此替换的 Bazel 模块依赖项的名称。 |
urls
|
string;或 string 的可迭代对象;
必需 归档文件的网址;可以是 http(s):// 或 file:// 网址。 |
integrity
|
默认为 '' 归档文件的预期校验和,采用 Subresource Integrity 格式。 |
strip_prefix
|
默认为 '' 要从解压缩的文件中删除的目录前缀。 |
patches
|
字符串的可迭代对象;默认为 [] 指向要为此模块应用的补丁文件的标签列表。补丁文件必须存在于顶级项目的源代码树中。系统会按照列表顺序应用这些规则。 |
patch_cmds
|
字符串的可迭代对象;默认为 [] 在应用补丁后,要在 Linux/Macos 上应用的 Bash 命令序列。 |
patch_strip
|
默认值为 0 与 Unix 补丁的 --strip 参数相同。 |
bazel_dep
None
bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
声明对其他 Bazel 模块的直接依赖项。
参数
参数 | 说明 |
---|---|
name
|
必需 要添加为直接依赖项的模块的名称。 |
version
|
默认为 '' 要作为直接依赖项添加的模块的版本。 |
max_compatibility_level
|
默认值为 -1 要添加为直接依赖项的模块支持的 compatibility_level 上限。模块的版本会隐含所支持的最低兼容性级别以及未指定此属性时的最高兼容性级别。
|
repo_name
|
默认值为 '' 表示此依赖项的外部代码库的名称。默认情况下,这是模块的名称。 |
dev_dependency
|
默认值为 False 如果为 true,如果当前模块不是根模块或已启用“--ignore_dev_dependency”,则此依赖项将被忽略。 |
git_override
None
git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0, init_submodules=False, strip_prefix='')
指定依赖项应来自 Git 代码库的特定提交。此指令仅在根模块中生效;换句话说,如果某个模块被其他模块用作依赖项,系统会忽略该模块自己的替换项。
参数
参数 | 说明 |
---|---|
module_name
|
required 要应用此替换的 Bazel 模块依赖项的名称。 |
remote
|
必填 远程 Git 代码库的网址。 |
commit
|
默认值为 '' 应签出的提交。 |
patches
|
字符串的可迭代对象;默认为 [] 指向要为此模块应用的补丁文件的标签列表。补丁文件必须存在于顶级项目的源代码树中。它们按列表顺序应用。 |
patch_cmds
|
可迭代字符串;默认值为 [] 应用补丁后要应用于 Linux/Macos 的 Bash 命令序列。 |
patch_strip
|
默认值为 0 与 Unix 补丁的 --strip 参数相同。 |
init_submodules
|
默认值为 False 是否应递归初始化提取的代码库中的 git 子模块。 |
strip_prefix
|
默认为 '' 要从解压缩的文件中剥离的目录前缀。这可用于以 Git 代码库的子目录为目标。请注意,子目录必须具有自己的“MODULE.bazel”文件,并且其模块名称与传递到此“git_override”的“module_name”参数相同。 |
包含
None
include(label)
包含另一个类似 MODULE.bazel 的文件的内容。实际上,include()
的行为方式就像包含的文件以文本形式放置在 include()
调用的位置一样,只不过变量绑定(例如用于 use_extension
的绑定)仅在其所在的文件中可见,而不会显示在任何包含或包含的文件中。只有根模块可以使用 include()
;如果 bazel_dep
的 MODULE 文件使用 include()
,则会发生错误。
只能包含主代码库中的文件。
借助 include()
,您可以将根模块文件划分为多个部分,以避免出现巨大的 MODULE.bazel 文件,或更好地管理对各个语义段的访问控制。
参数
参数 | 说明 |
---|---|
label
|
必需 指向要包含的文件的标签。该标签必须指向主代码库中的文件;换言之,它必须以双斜杠 ( // ) 开头。 |
inject_repo
None
inject_repo(extension_proxy, *args, **kwargs)
将一个或多个新代码库注入给定的模块扩展。
如果当前模块不是根模块或已启用“--ignore_dev_dependency”,则系统会忽略此属性。
请改用 override_repo
替换现有代码库。
参数
参数 | 说明 |
---|---|
extension_proxy
|
requireduse_extension 调用返回的模块扩展代理对象。
|
args
|
required 对当前模块可见的代码库,应注入到扩展程序中。 |
kwargs
|
required 要注入到扩展程序中的新代码库,其中的值是当前模块范围内的代码库的名称,而键是将在扩展程序中显示的代码库的名称。 |
local_path_override
None
local_path_override(module_name, path)
指定依赖项应来自本地磁盘上的某个目录。此指令仅在根模块中生效;换句话说,如果某个模块被其他模块用作依赖项,则系统会忽略该模块自己的替换项。
参数
参数 | 说明 |
---|---|
module_name
|
required 要应用此替换的 Bazel 模块依赖项的名称。 |
path
|
必需 此模块所在目录的路径。 |
module
None
module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])
声明当前 Bazel 代码库所代表的 Bazel 模块的某些属性。这些属性要么是模块的基本元数据(例如名称和版本),要么会影响当前模块及其依赖项的行为。最多只能调用一次它,如果调用,它必须是 MODULE.bazel 文件中的第一个指令。只有当此模块是根模块(即不会被其他模块依赖)时,才能省略它。
参数
参数 | 说明 |
---|---|
name
|
默认值为 '' 模块名称。只有当此模块是根模块(即不会被其他模块依赖)时,才能省略。有效的模块名称必须:1) 仅包含小写字母 (a-z)、数字 (0-9)、句点 (.)、连字符 (-) 和下划线 (_);2) 以小写字母开头;3) 以小写字母或数字结尾。 |
version
|
默认值为 '' 模块的版本。只有当此模块是根模块(即不会被其他模块依赖)时,才能省略。版本必须采用宽松的 SemVer 格式;如需了解详情,请参阅文档。 |
compatibility_level
|
默认值为 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='')
指定依赖项应仍来自注册库,但应允许其多个版本共存。如需了解详情,请参阅相关文档。此指令仅在根模块中生效;换句话说,如果某个模块被其他模块用作依赖项,系统会忽略该模块自己的替换项。
参数
override_repo
None
override_repo(extension_proxy, *args, **kwargs)
使用当前模块可见的给定代码库替换给定模块扩展程序定义的一个或多个代码库。如果当前模块不是根模块或已启用“--ignore_dev_dependency”,系统会忽略此属性。
请改用 inject_repo
添加新的代码库。
参数
参数 | 说明 |
---|---|
extension_proxy
|
必需use_extension 调用返回的模块扩展代理对象。
|
args
|
必需 扩展程序中应使用当前模块中同名代码库替换的代码库。 |
kwargs
|
required 要应用于扩展程序生成的代码库的替换值,其中值是当前模块范围内的代码库的名称,键是它们将在扩展程序中替换的代码库的名称。 |
register_execution_platforms
None
register_execution_platforms(dev_dependency=False, *platform_labels)
指定在选择此模块时要注册的已定义执行平台。应为绝对目标模式(即以 @
或 //
开头)。如需了解详情,请参阅工具链解析。
参数
参数 | 说明 |
---|---|
dev_dependency
|
默认值为 False 如果为 true,当当前模块不是根模块或启用了 `--ignore_dev_dependency` 时,系统不会注册执行平台。 |
platform_labels
|
string 的 sequence;必需 要注册的平台的标签。 |
register_toolchains
None
register_toolchains(dev_dependency=False, *toolchain_labels)
指定要在选择此模块时注册的已定义工具链。应为绝对目标模式(即以 @
或 //
开头)。如需了解详情,请参阅工具链解析。
参数
参数 | 说明 |
---|---|
dev_dependency
|
默认值为 False 如果为 true,则当当前模块不是根模块或已启用“--ignore_dev_dependency”时,系统不会注册工具链。 |
toolchain_labels
|
字符串的序列;
必需 要注册的工具链的标签。标签可以包含 :all ,在这种情况下,软件包中提供工具链的所有目标都将按名称的字典顺序注册。 |
single_version_override
None
single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)
指定依赖项仍应来自注册表,但应固定其版本、覆盖其注册表或应用的补丁列表。此指令仅在根模块中有效;换言之,如果某个模块被其他模块用作依赖项,该指令自己的替换项会被忽略。
参数
参数 | 说明 |
---|---|
module_name
|
required 要应用此替换的 Bazel 模块依赖项的名称。 |
version
|
默认值为 '' 替换依赖关系图中此模块的声明版本。也就是说,此模块将“固定”到此替换版本。如果只覆盖注册表或补丁,则可以省略此属性。 |
registry
|
默认值为 '' 替换此模块的注册表;应使用给定注册表,而不是从默认注册表列表中查找此模块。 |
patches
|
字符串的可迭代对象;默认为 [] 指向要为此模块应用的补丁文件的标签列表。补丁文件必须存在于顶级项目的源代码树中。它们按列表顺序应用。 如果补丁更改了 MODULE.bazel 文件,那么只有当补丁文件由根模块提供时,这些更改才会生效。 |
patch_cmds
|
字符串的可迭代对象;默认为 [] 在应用补丁后在 Linux/Macos 上应用的 Bash 命令序列。 对 MODULE.bazel 文件所做的更改将不会生效。 |
patch_strip
|
默认值为 0 与 Unix 补丁的 --strip 参数相同。 |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)返回一个代表模块扩展程序的代理对象;您可以调用其方法来创建模块扩展程序标记。
参数
参数 | 说明 |
---|---|
extension_bzl_file
|
required Starlark 文件的标签,用于定义模块扩展。 |
extension_name
|
required 要使用的模块扩展的名称。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
|
requireduse_extension 调用返回的模块扩展代理对象。
|
args
|
必填 要导入的代码库的名称。 |
kwargs
|
required 以不同的名称指定要导入到当前模块范围内的特定代码库。键应为当前作用域中要使用的名称,而值应为模块扩展程序导出的原始名称。 |
use_repo_rule
repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)返回一个代理值,该值可在 MODULE.bazel 文件中直接作为代码库规则调用一次或多次。以这种方式创建的代码库只有当前模块使用代理上的
name
属性声明的名称下可见。您还可以在代理上使用隐式布尔值 dev_dependency
属性,以指明只有在当前模块是根模块时才创建特定代码库。
参数
参数 | 说明 |
---|---|
repo_rule_bzl_file
|
required Starlark 文件中定义 Repo 规则的标签。 |
repo_rule_name
|
必需 要使用的代码库规则的名称。Starlark 文件必须导出具有此名称的符号。 |