Bazel - BUILD 不引用外部依赖

我正在尝试使用 bazel 运行一些 grpc 测试。我"google.golang.org/grpc/credentials/insecure"习惯不安全地拨号。


运行时bazel test ...,出现以下错误:


no such package '@org_golang_google_grpc//credentials/insecure': BUILD file not found in directory 'credentials/insecure' of external repository @org_golang_google_grpc. Add a BUILD file to a directory to mark it as a package. and referenced by '//go/internal/handlers/helloworld:helloworld_test'

我正在用 gazelle 生成我的 BUILD 文件,它为 go_test 输出这个


go_test(

    name = "helloworld_test",

    srcs = ["helloworld_test.go"],

    deps = [

        ":helloworld",

        "//protos/helloworld",

        "@com_github_stretchr_testify//assert",

        "@org_golang_google_grpc//:go_default_library",

        "@org_golang_google_grpc//credentials/insecure",

        "@org_golang_google_grpc//test/bufconn",

        "@org_uber_go_zap//:zap",

        "@org_uber_go_zap//zaptest",

    ],

)

我的 go.mod 文件包含 dep: google.golang.org/grpc v1.47.0


我的 deps.bzl 是由 gazelle 自动生成的:


go_repository(

    name = "org_golang_google_grpc",

    importpath = "google.golang.org/grpc",

    sum = "h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8=",

    version = "v1.47.0",

)

我错过了什么?


泛舟湖上清波郎朗
浏览 332回答 1
1回答

猛跑小猪

在 WORKSPACE 中,gazelle 生成的本地 go_repositories() 必须在 gazelle_dependencies() 之前调用,如果它不存在,它将定义一个古老版本的 org_golang_google_grpc,而新版本的本地 go_repository 将被静默忽略。参考
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go