登录
首页 >  Golang >  Go问答

如何更新 `go list` 中软件包的版本信息?

来源:stackoverflow

时间:2024-03-14 17:42:26 378浏览 收藏

从现在开始,努力学习吧!本文《如何更新 `go list` 中软件包的版本信息?》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

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 也是该包的 github 存储库上的最新版本。

我应该如何解决这个问题?看起来这可能是缓存问题。

背景信息:存储库最初具有基于 dep 的依赖项列表 (gopkg.toml),版本为 1.20。我更喜欢模块,所以我通过 go mod init $repo_url 初始化了 go.mod。后来我从存储库中提取了最新的提交,该存储库的软件包版本已更新为 1.22。我尝试重新创建 go.mod;它首先表明该步骤存在问题:

9515536​​94924

最后,我得到了需要版本 1.22 的代码,但工具获取了不向前兼容的版本 1.20,因此无法编译。


解决方案


您无法修复此问题。该包已损坏,因此包作者/维护者需要修复它。

简而言之,该项目有一个无效的 go.mod 文件,该文件显然是在 v1.20.0 发布后添加的 - 这就是为什么该版本可用。

go.mod 文件引用“github.com/urfave/cli”,但该包导入为“gopkg.in/urfave/cli.v1”。需要更新 go.mod 文件以反映正确的导入路径。

作为一种解决方法,将包导入为“github.com/urfave/cli”可能,但这会破坏许多具有“子”包的包,这些包引用了备用导入路径。不过,我想说在这种情况下值得一试。

以上就是《如何更新 `go list` 中软件包的版本信息?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>