在多仓库环境中使用Bazel时,保持依赖项一致性的最佳策略是什么?
例如。工作区(单独的git repos)A,B,C都依赖于D。当D的版本发生变化时,我希望A,B和C都以最少的工作量都位于同一D版本上。
答案 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