问题标签 [bazel-gazelle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - Bazel 使用第三方库构建错误 - 没有这样的包
我正在使用 bazel 4.1.0 来构建项目。当前设置:
go.mod 文件
工作区文件
在 repositories.blz 文件中
在学生/api.v1/api.proto 文件中
运行bazel run //:gazelle -- update-repos -from_file=go.mod -to_macro=repositories.bzl%go_repositories -prune=true
后bazel run //:gazelle
它生成students/api.v1/BUILD.bazel文件
当我运行时bazel build //...
,它会产生错误
我想让构建工作没有错误。非常感谢您的帮助。我认为在BUILD.bazel
文件中,//github.com/mwitkow/go-proto-validators:validators_proto
应该是@github.com/mwitkow/go-proto-validators:validators_proto
,@go_googleapis//google/api:annotations_proto
但它只是一个模糊的想法。
go - 是否可以使用 Gazelle 自动加载传递依赖项?
我想使用 Gazelle 在 Bazel 中管理我的 Go 依赖项(及其依赖项)。运行bazel run //:gazelle update-repos firebase.google.com/go
将正确配置添加go_repository
到我的WORKSPACE
文件中:
但是,这不是开箱即用的。运行bazel build @com_google_firebase_go//:go_default_library
返回错误:
有没有办法告诉瞪羚加载@org_golang_google_api
传递依赖和其他而不需要update-repos
为每个运行?
go - 如何让 bazel/gazelle go_repository 导入过去 go vet
我正在使用 bazel/gazelle 来引入一些外部 git 存储库。例如:
github.com/pkg/errors
我的 go 文件会像往常一样导入。当我go vet
在我的文件上运行时出现问题。它会抱怨在 GOROOT 或 GOPATH 下不存在这样的包。这个 repo 位于我的 bazel 缓存中。~/.cache/bazel/.../external/com_github_pkg_errors
我该如何解决这个问题?
go - 未定义:gomock.AssignableToTypeOf
我收到此错误:未定义:gomock.AssignableToTypeOf 使用包 github.com/golang/mock 的函数 gomock.AssignableToTypeOf 时发生“
当我在 Project 的 WORKSPACE 文件中更新版本时开始发生这种情况,并且执行bazel coverage
命令时出现的错误未定义:gomock.AssignableToTypeOf
Bazel 版本:4.2.1 Bazel 规则版本:v0.30.0 bazel_gazelle 版本:v0。 24.0 Go 版本:1.17.6 Docker 规则版本:0.23.0
它在以前的版本上运行良好—— Bazel 版本:3.7.1 Bazel 规则版本:v0.27.0 bazel_gazelle 版本:v0.23.0 Go 版本:1.16 Docker 规则版本:0.14.4
这是 WORKSPACE 文件的代码片段。
go - 如何在 Go Gazelle 项目中使用 Bazel 平台转换
我有一个使用 Gazelle 设置的(纯)Go 项目。它有一个主二进制文件,它cmd/main/BUILD
由 Gazelle 生成,如下所示:
我可以为我的主机系统构建二进制文件,或者通过传递--platforms=@io_bazel_rules_go//go/toolchain:linux_arm64
命令行为我们的部署目标构建二进制文件。但是现在,我希望能够为两个平台创建一个包含构建的 tar,而无需使用不同的 CLI 参数调用 Bazel。
正如这里所推荐的(“您可以通过 //command_line_option:platforms 上的 Bazel 配置转换等效地依赖 go_binary 或 go_test 规则”),我正在尝试使用转换进行设置。
我的transitions.bzl
文件:
但是现在,我不知道如何将转换附加到 Gazelle 生成的 go_binary 规则。我的根构建文件: