以下函数可从 @bazel_tools//tools/build_defs/repo:git.bzl
加载。
git_repository
git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
克隆外部 Git 代码库。
克隆 Git 代码库,检出指定的标记或提交,并使其目标可用于绑定。还要确定实际检出的提交的 ID 和日期,并返回一个包含参数的字典,这些参数提供此规则的可重现版本(标记不一定如此)。
属性
name |
名称;必需
此代码库的唯一名称。 |
branch |
字符串;可选
远程代码库中的分支以签出。必须指定分支、标记或提交中的一个。 |
build_file |
标签;可选
要用作相应代码库的 BUILD 文件的文件。此属性是绝对标签(对于主代码库,请使用“@//”)。该文件不必命名为 BUILD,但可以命名为 BUILD(例如,BUILD.new-repo-name 可能有助于将其与代码库的实际 BUILD 文件区分开来)。必须指定 build_file 或 build_file_content。 |
build_file_content |
字符串;可选
相应代码库的 BUILD 文件的内容。必须指定 build_file 或 build_file_content。 |
commit |
字符串;可选
要检出的特定提交。必须指定分支、标记或提交中的一个。 |
init_submodules |
布尔值;可选
是否克隆代码库中的子模块。 |
patch_args |
字符串列表;可选
传递给补丁工具的实参。默认为 -p0,但对于由 Git 生成的补丁,通常需要使用 -p1。如果指定了多个 -p 实参,则最后一个实参会生效。如果指定了除 -p 以外的实参,Bazel 将回退为使用 patch 命令行工具,而不是 Bazel 原生的 patch 实现。回退到补丁命令行工具且未指定 patch_tool 属性时,将使用“patch”。 |
patch_cmds |
字符串列表;可选
在应用补丁后,要在 Linux/macOS 上应用的 Bash 命令序列。 |
patch_cmds_win |
字符串列表;可选
在应用补丁后要在 Windows 上应用的 PowerShell 命令序列。如果未设置此属性,patch_cmds 将在 Windows 上执行,这需要存在 Bash 二进制文件。 |
patch_tool |
字符串;可选
要使用的 patch(1) 实用程序。如果指定了此属性,Bazel 将使用指定的补丁工具,而不是 Bazel 原生的补丁实现。 |
patches |
标签列表;可选
在提取归档文件后要作为补丁应用的文件列表。默认情况下,它使用不支持模糊匹配和二进制补丁的 Bazel 原生补丁实现,但如果指定了 `patch_tool` 属性或 `patch_args` 属性中存在除 `-p` 之外的实参,Bazel 将回退到使用 patch 命令行工具。 |
recursive_init_submodules |
布尔值;可选
是否以递归方式克隆代码库中的子模块。 |
remote |
字符串;必需
远程 Git 代码库的 URI |
shallow_since |
字符串;可选
一个可选日期,不得晚于指定的提交;如果指定了标记(允许以深度 1 进行克隆),则不允许使用此实参。将此类日期设置为接近指定提交,可以更浅层地克隆代码库,从而节省带宽和实际时间。 |
strip_prefix |
字符串;可选
要从提取的文件中剥离的目录前缀。 |
tag |
字符串;可选
远程代码库中要签出的标记。必须指定分支、标记或提交中的一个。 |
verbose |
布尔值;可选 |
workspace_file |
标签;可选
要用作相应代码库的 `WORKSPACE` 文件的文件。您可以指定 `workspace_file` 或 `workspace_file_content`,也可以都不指定,但不能同时指定这两者。 |
workspace_file_content |
字符串;可选
相应代码库的 WORKSPACE 文件的内容。您可以指定 `workspace_file` 或 `workspace_file_content`,也可以都不指定,但不能同时指定这两者。 |
new_git_repository
new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
克隆外部 Git 代码库。
克隆 Git 代码库,检出指定的标记或提交,并使其目标可用于绑定。还要确定实际检出的提交的 ID 和日期,并返回一个包含参数的字典,这些参数提供此规则的可重现版本(标记不一定如此)。
属性
name |
名称;必需
此代码库的唯一名称。 |
branch |
字符串;可选
远程代码库中的分支以签出。必须指定分支、标记或提交中的一个。 |
build_file |
标签;可选
要用作相应代码库的 BUILD 文件的文件。此属性是绝对标签(对于主代码库,请使用“@//”)。该文件不必命名为 BUILD,但可以命名为 BUILD(例如,BUILD.new-repo-name 可能有助于将其与代码库的实际 BUILD 文件区分开来)。必须指定 build_file 或 build_file_content。 |
build_file_content |
字符串;可选
相应代码库的 BUILD 文件的内容。必须指定 build_file 或 build_file_content。 |
commit |
字符串;可选
要检出的特定提交。必须指定分支、标记或提交中的一个。 |
init_submodules |
布尔值;可选
是否克隆代码库中的子模块。 |
patch_args |
字符串列表;可选
传递给补丁工具的实参。默认为 -p0,但对于由 Git 生成的补丁,通常需要使用 -p1。如果指定了多个 -p 实参,则最后一个实参会生效。如果指定了除 -p 以外的实参,Bazel 将回退为使用 patch 命令行工具,而不是 Bazel 原生的 patch 实现。回退到补丁命令行工具且未指定 patch_tool 属性时,将使用“patch”。 |
patch_cmds |
字符串列表;可选
在应用补丁后,要在 Linux/macOS 上应用的 Bash 命令序列。 |
patch_cmds_win |
字符串列表;可选
在应用补丁后要在 Windows 上应用的 PowerShell 命令序列。如果未设置此属性,patch_cmds 将在 Windows 上执行,这需要存在 Bash 二进制文件。 |
patch_tool |
字符串;可选
要使用的 patch(1) 实用程序。如果指定了此属性,Bazel 将使用指定的补丁工具,而不是 Bazel 原生的补丁实现。 |
patches |
标签列表;可选
在提取归档文件后要作为补丁应用的文件列表。默认情况下,它使用不支持模糊匹配和二进制补丁的 Bazel 原生补丁实现,但如果指定了 `patch_tool` 属性或 `patch_args` 属性中存在除 `-p` 之外的实参,Bazel 将回退到使用 patch 命令行工具。 |
recursive_init_submodules |
布尔值;可选
是否以递归方式克隆代码库中的子模块。 |
remote |
字符串;必需
远程 Git 代码库的 URI |
shallow_since |
字符串;可选
一个可选日期,不得晚于指定的提交;如果指定了标记(允许以深度 1 进行克隆),则不允许使用此实参。将此类日期设置为接近指定提交,可以更浅层地克隆代码库,从而节省带宽和实际时间。 |
strip_prefix |
字符串;可选
要从提取的文件中剥离的目录前缀。 |
tag |
字符串;可选
远程代码库中要签出的标记。必须指定分支、标记或提交中的一个。 |
verbose |
布尔值;可选 |
workspace_file |
标签;可选
要用作相应代码库的 `WORKSPACE` 文件的文件。您可以指定 `workspace_file` 或 `workspace_file_content`,也可以都不指定,但不能同时指定这两者。 |
workspace_file_content |
字符串;可选
相应代码库的 WORKSPACE 文件的内容。您可以指定 `workspace_file` 或 `workspace_file_content`,也可以都不指定,但不能同时指定这两者。 |