使用 Bazel 构建 Go 无法解析存储库

我正在按照“使用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

步骤

.gitlab-ci.yml

  • 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...


红颜莎娜
浏览 127回答 1
1回答

回首忆惘然

解决方案是使用以下组合$ bazel run //:gazelle$ bazel run //:gazelle -- update-repos -from_file=go.mod -to_macro=deps.bzl%go_dependencies$ bazel run //:gazelle如此处所述。update-repos...部分将使用所有必要的依赖项更新文件。WORKSPACE
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go