如何在http_archive中正确指定build_file参数?
解决http_archive加载自带BUILD文件仓库的报错问题
核心结论:不需要指定
build_file参数!
当你拉取的归档包(比如v1.0.tar.gz)本身已包含BUILD文件时,Bazel会自动在解压后的目录中查找并使用该文件,手动指定build_file反而会导致错误——这个参数的作用是让Bazel去你的本地项目目录中寻找指定的BUILD文件,而非归档包内的文件,这就是你触发“BUILD file not found”报错的原因。正确的http_archive配置:
http_archive( name = "bazel_clang_tidy", url = "https://github.com/mongodb-forks/bazel_clang_tidy/archive/refs/tags/v1.0.tar.gz", # 可选:添加sha256校验值提升安全性,可从GitHub对应tag的tar包页面获取校验码 # sha256 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", )额外说明:
- 如果归档包本身没有BUILD文件,才需要用
build_file参数指定本地项目中的BUILD文件路径(比如//third_party:bazel_clang_tidy.BUILD)。 - 你之前尝试的
//BUILD、//:BUILD等写法,均指向当前项目根目录的BUILD文件,和归档包内的文件无关,因此会触发找不到文件的错误。
- 如果归档包本身没有BUILD文件,才需要用
内容的提问来源于stack exchange,提问作者user24471204
相关产品推荐
相关产品推荐

