转到列表:查询“最新”没有匹配的版本

问题描述

我正在尝试在 opentelemetry-collector-contrib 项目上运行 go list -mod=readonly -m -u -json all 命令。

它失败并出现以下错误:

$ go list -mod=readonly -m -u -json all
go list -m: loading module retractions for github.com/DataDog/datadog-agent/pkg/trace/exportable@v0.0.0-20201016145401-4646cf596b02: no matching versions for query "latest"
go list -m: loading module retractions for github.com/influxdata/line-protocol/v2@v2.0.0-20210428091617-0567a5134992: no matching versions for query "latest"
$ echo $?
1

我使用的是 go 1.16.5:

$ go version
go version go1.16.5 linux/amd64

我已经用 go clean -modcache 清理了 go 缓存,结果相同。

我找到了两个模块 https://pkg.go.dev/

似乎 github.com/DataDog/datadog-agent/pkg/trace/exportable 的确切版本存在,但 github.com/influxdata/line-protocol 的版本不存在,但无论如何都报告相同的错误。

我不知道 golang 在这里期望什么以及如何开始对问题进行故障排除。

有人可以帮忙吗?

解决方法

由于在 Go 1.16 的 retract 中引入了 go.mod 指令,这似乎是一个错误 (https://github.com/golang/go/issues/45305)。事实上,如果您省略 -m 标志,该命令运行良好。

如问题线程中所述,您可以添加 -e 标志以在出现错误的情况下继续:

$ go list -mod=readonly -m -u -e -json all

{
    "Path": "github.com/open-telemetry/opentelemetry-collector-contrib","Main": true,"Dir": "/Users/me/go/opentelemetry-collector-contrib","GoMod": "/Users/me/go/opentelemetry-collector-contrib/go.mod","GoVersion": "1.16"
}
... much more

关于 -e 标志,go help list

-e 标志改变了错误包的处理方式,那些错误包 无法找到或格式错误。 [...] 使用 -e 标志,list 命令永远不会将错误打印到标准 错误,而是用通常的方式处理错误的包 印刷。错误的包将有一个非空的 ImportPath 和 一个非零的 Error 字段;其他信息可能会或可能不会丢失 (归零)。

它应该在 Go 1.17 中得到修复,现在仍处于测试版。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...