go - 使用 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
脚步
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...
部分将使用所有必要的依赖项更新 WORKSPACE。
解决方案
解决方案是使用以下组合
$ bazel run //:gazelle
$ bazel run //:gazelle -- update-repos -from_file=go.mod -to_macro=deps.bzl%go_dependencies
$ bazel run //:gazelle
如此处所述。
update-repos...
WORKSPACE
部分将使用所有必要的依赖项更新文件。
推荐阅读
- r - 在带有许多值的绘图悬停模板中显示所有值
- python - VS Code 中的 Jupyter Notebook 无法正常工作
- android - onSaveInstanceState 和 onRestoreInstanceState 函数不起作用
- c# - 在 DBContext 上设置从 Key Vault 检索的连接字符串的正确方法是什么?
- sql - 如何计算给定表中 2 列的平均时间差?
- javascript - 在 JavaScript 中的条件运算符内执行多个语句
- python - Python解析器层不匹配令牌
- php - 使用日期范围的特定星期几填充 PHP 数组(使用 Laravel)
- c++ - 在不更改参数的情况下将迭代函数转换为递归函数
- javascript - 在标记为模块的脚本标记中使用“import”语句会产生 404 错误