我是 Stackoverflow 和 Bazel 的新手,但希望我的问题很清楚。 我想使用 Bazel 来管理我的构建。我有多个 git 存储库,有些存储库是应用程序,有些是库。一些应用程序和库依赖于其他库。
作为示例,假设以下结构
如果我理解 bazel 7 的文档,每个存储库都需要一个 MODULE.bazel 文件和一个 BUILD.bazel。
到目前为止,我已经尝试过具有多个子目录的单个存储库,效果很好,但不清楚如何迁移到多个存储库设置。
对于 Bazel 7.0,仍然需要一个空的
WORKSPACE.bazel
。如果 Bazel 模块没有 WORKSPACE.bazel
文件,Bazel 在导入模块时会报错,表示该模块缺少 WORKSPACE
文件。如前所述,WORKSPACE
文件可以而且应该为空。
此外,一些工具(例如用于 JetBrain 工具的 Bazel PlugIns)需要 WORKSPACE
文件才能工作(即使它只是空的)。
对于你的第二个问题:有不同的方式。 一种是保留单一存储库,而不是转向多存储库方法。 另一种方法是,您设置自己的注册表来了解所有模块。例如看这里。 然后添加到您的
.bazelrc
:
common --registry=https://raw.githubusercontent.com/your_orga/registry/main
另请参阅此处。
或者您可以将存储库添加到 Bazel 中央注册表中。