在多仓库中使用Bazel

时间:2019-02-06 17:37:26

标签: bazel

在多仓库环境中使用Bazel时,保持依赖项一致性的最佳策略是什么?

例如。工作区(单独的git repos)A,B,C都依赖于D。当D的版本发生变化时,我希望A,B和C都以最少的工作量都位于同一D版本上。

1 个答案:

答案 0 :(得分:0)

您可以在A,B和C的git_repository文件中使用WORKSPACE规则:

load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(
  name = "D",
  remote = "https://github.com/my_org/d",
  branch = "master",
)

请注意,branch属性设置为master,而不是某些特定的提交。分支不必是主分支。可以是任何分支。


如果您想要一种复制版本的方法, 这可以通过使用bazel sync命令来完成。

There is a bazel blog post,其中详细说明了拥有外部工作区(resolved.bzl)的“快照”文件所需采取的步骤。

您可以将其用作将来的研究的另一个构建工件,或者通过用bazel sync调用--experimental_repository_resolved_file=resolved.bzl

来更好地控制何时将“指针”更新到外部工作空间。