bazel 中的模块别名

Module aliases in bazel

Bazel 使用基于位置的引用方案。然而,如果你想移动你的模块,这会导致重构问题。是否可以模拟一个逻辑命名方案,类似于 Maven 中的命名方案,即 package.module.submodule?

bazel 中没有完全像这样的机制,但我有两个建议:

  1. 移动包,并将对旧包的每个引用重命名为新包。您可以使用 bazel query 来查找包的依赖项。如果您只有少量对旧包的引用,那很容易,但如果您有很多引用,那就更难了。您可以使用 buildozer 等工具自动重命名。

  2. 移动包,并为新包中的每个目标创建一个包含旧包的 alias() rules 的 BUILD 文件。不过维护起来可能很烦人。