如何设置 bazel 7 存储库依赖项

问题描述 投票:0回答:1

我是 Stackoverflow 和 Bazel 的新手,但希望我的问题很清楚。 我想使用 Bazel 来管理我的构建。我有多个 git 存储库,有些存储库是应用程序,有些是库。一些应用程序和库依赖于其他库。

作为示例,假设以下结构

  • repo_app1(依赖于 lib1)
  • repo_app2(依赖于 lib2)
  • repo_lib1(依赖于lib2)
  • repo_lib2(无依赖)

如果我理解 bazel 7 的文档,每个存储库都需要一个 MODULE.bazel 文件和一个 BUILD.bazel。

  1. 我不清楚我是否仍然需要 WORKSPACE.bazel,如果需要,它会去哪里(以便它受源代码控制)?
  2. repo_lib1 规则如何下载 repo_lib2 依赖项?

到目前为止,我已经尝试过具有多个子目录的单个存储库,效果很好,但不清楚如何迁移到多个存储库设置。

bazel bazel-rules multiple-repositories
1个回答
0
投票

对于 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 中央注册表中。

© www.soinside.com 2019 - 2024. All rights reserved.