You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用bazel-gazelle构建Go Proto时出现导入依赖错误

问题修复方案

问题根源

user_service_go_proto生成的Go代码导入了github.com/abcd/user/proto,但该目标未在deps中声明对应的Go proto库依赖。虽然user_service_proto依赖user_proto,但Go Proto库之间需要显式声明依赖关系,Bazel无法自动推导跨go_proto_library的依赖。

修复步骤

修改proto/BUILD文件中的user_service_go_proto规则,添加deps字段指向user_go_proto:

go_proto_library(
    name = "user_service_go_proto",
    compilers = ["@io_bazel_rules_go//proto:go_grpc"],
    importpath = "github.com/abcd/userservice/proto",
    protos = [
        ":user_proto",
        ":user_service_proto",
    ],
    deps = [":user_go_proto"],  # 新增依赖声明
)

验证修复

重新执行构建命令:

bazel build proto:all

补充说明

  • Go proto库的依赖关系需要和Go代码的导入严格对应,每个被导入的Go proto包都要在deps中声明对应的go_proto_library目标。
  • 你的option go_package值与go_proto_library的importpath配置完全匹配,这部分无需调整。

内容的提问来源于stack exchange,提问作者Mohammed Nadeem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:43:28