我正在按照“使用Bazel构建Go服务”youtube中的步骤操作,并创建了一个具有依赖项的简单项目,该项目无法构建并出现错误:
ERROR: /builds/mvfwd/issue-bazel-go/cmd/BUILD.bazel:3:11: no such package '@com_github_pallinder_go_randomdata//': The repository '@com_github_pallinder_go_randomdata' could not be resolved and referenced by '//cmd:cmd_lib'
ERROR: Analysis of target '//cmd:cmd' failed; build aborted: Analysis failed
INFO: Elapsed time: 1.263s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (1 packages loaded, 165 targets configured)
FAILED: Build did NOT complete successfully (1 packages loaded, 165 targets configured)
版本
$ bazel --version
bazel 4.1.0
$ go version
go version go1.17 linux/amd64
项目: https://gitlab.com/mvfwd/issue-bazel-go
go mod init gitlab.com/mvfwd/issue-bazel-go
创建go.mod
go mod tidy
创建go.sum
bazel run //:gazelle
创建cmd/BUILD.bazel
bazel build ...
失败并显示错误
认为这可能是因为“go-randomdata”中的破折号,所以添加了另一个非破折号依赖关系(github.com/stretchr/testify/assert),得到了同样的问题。
我做错了什么?我错过了什么吗?
UPD:解决方案是使用以下组合
$ bazel run //:gazelle $ bazel run //:gazelle -- update-repos -from_file=go.mod -to_macro=deps.bzl%go_dependencies $ bazel run //:gazelle
如此处所述。 部分将使用所有必要的依赖项更新工作区。update-repos...
回首忆惘然
相关分类