gpt4 book ai didi

go - `go list` 没有显示最新版本的包怎么办?

转载 作者:行者123 更新时间:2023-12-01 21:17:31 29 4
gpt4 key购买 nike

go list -m -versions gopkg.in/urfave/cli.v1给了我以下版本列表,最新版本为 1.20.0:

gopkg.in/urfave/cli.v1 v1.0.0 v1.1.0 v1.2.0 v1.3.0 v1.3.1 v1.4.0 v1.4.1 v1.5.0 v1.6.0 v1.7.0 v1.7.1 v1.8.0 v1.9.0 v1.10.0 v1.10.1 v1.10.2 v1.11.0 v1.11.1 v1.12.0 v1.13.0 v1.14.0 v1.15.0 v1.16.0 v1.16.1 v1.17.0 v1.17.1 v1.18.0 v1.18.1 v1.19.0 v1.19.1 v1.20.0
然而,根据 gopkg.in , 1.22.4 应该是最新版本。 1.22.4 也是 the package's GitHub repo 上的最新版本.
我应该如何解决这个问题?似乎它可能是一个缓存问题。
背景信息:存储库最初具有基于 dep 的依赖项列表 (Gopkg.toml),其版本为 1.20。我更喜欢模块,所以我用 go mod init $REPO_URL 初始化 go.mod .后来我从 repo 中提取了最新的提交,它的包版本更新到了 1.22。我尝试重新创建 go.mod ;它首先表明该步骤存在问题:
go: converting Gopkg.lock: stat gopkg.in/urfave/cli.v1@v1.22.0: gopkg.in/urfave/cli.v1@v1.22.0: invalid version: go.mod has non-....v1 module path "github.com/urfave/cli" at revision v1.22.0
最后,我得到了需要 1.22 版的代码,但是这些工具获取的 1.20 版不向前兼容,因此无法编译。

最佳答案

您无法修复它。包坏了,所以包作者/维护者需要修复它。
总之,该项目有一个无效的go.mod文件,显然是在 v1.20.0 发布后添加的——这就是为什么可以使用该版本的原因。go.mod文件引用“github.com/urfave/cli”,但包被导入为“gopkg.in/urfave/cli.v1”。 go.mod需要更新文件以反射(reflect)正确的导入路径。
作为一种解决方法,将包导入为“github.com/urfave/cli”可能会起作用,但这会破坏许多具有引用备用导入路径的“子”包的包。不过,我会说在这种情况下值得一试。

关于go - `go list` 没有显示最新版本的包怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63013135/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com