如何在Bazel的src/MODULE.tools文件中使用本地buildozer模块?
解决Bazel源码构建时src/MODULE.tools中本地buildozer依赖的问题
临时方案:构建命令行加参数覆盖
直接在构建Bazel的命令里追加--override_repository参数,强制指定buildozer的本地路径,这个方法会绕过所有配置文件的依赖声明,不管是MODULE.bazel还是src/MODULE.tools都会生效。
示例命令:bazel build //src:bazel --override_repository=buildozer=/absolute/path/to/your/local/buildozer如果本地buildozer和Bazel源码目录同级,也可以用相对路径:
bazel build //src:bazel --override_repository=buildozer=../buildozer永久方案:修改src/MODULE.tools的依赖声明
直接修改Bazel源码里的src/MODULE.tools文件,把原来的bazel_dep替换成local_path直接引用本地仓库:
找到文件中类似这样的声明行:bazel_dep(name = "buildozer", version = "0.4.1")替换为:
local_path(name = "buildozer", path = "/absolute/path/to/your/local/buildozer")若使用相对路径,需确保路径是相对于Bazel源码根目录的,比如buildozer在源码目录外的同级位置,就写
path = "../buildozer"。修改后每次构建都会直接调用本地的buildozer,无需额外命令行参数。验证生效的小技巧
构建时可以加上--verbose_failures参数,或者查看构建日志的依赖拉取记录,确认没有出现从BCR下载buildozer的日志,就说明本地依赖已经生效。
内容的提问来源于stack exchange,提问作者NamrataB
相关产品推荐
相关产品推荐

