首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >go run main.go将go模块更改为较旧版本

go run main.go将go模块更改为较旧版本
EN

Stack Overflow用户
提问于 2021-02-18 21:08:31
回答 3查看 449关注 0票数 0

我使用的是github.com/go-chi/jwtauth v1.2.0,但是一旦我运行我的main.go,我的go.mod就会将库版本更改为github.com/go-chi/jwtauth v4.0.3+incompatible,这是一个较旧的版本,并且没有我需要的功能。我尝试在go.mod文件中手动更改版本,库也会为我更新,但是一旦我运行go run main.go命令,它就会恢复到旧版本。为什么会发生这种情况,我该如何解决这个问题?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2021-02-18 21:12:07

你可以使用-mod=readonly命令Go工具不要接触你的go.mod。事实上,这是Go 1.16的默认情况,所以我建议你升级。

FWIW版本v4.0.3听起来像是比v1.2.0更新的版本

票数 2
EN

Stack Overflow用户

发布于 2021-03-02 01:01:09

这是因为模块作者升级了模块以正式支持Go模块(即go mod)。为了做到这一点并保持相同的网址,他们必须将模块版本设置为1.x。因此,go mod认为4.x晚于1.x,而实际上并非如此(认为更大的数字更晚是合理的)。

一些模块作者创建了一个新版本,比如v5,但这会更改从中获取模块的URL。一些作者对此表示赞同,而另一些作者则不然。

在Go 1.16中,有能力retract以前版本的模块-这是go.mod文件中的一个标记,告诉go不要使用该版本。一些作者可能会这样做。

希望这能解释为什么,以及一些模块作者是如何改变的。在这种情况下,它不能完全解决您的问题,但是-mod=readonly可以工作。

这里的模块作者已经创建了v5.x,所以这个特定的模块不会存在这个问题。

票数 0
EN

Stack Overflow用户

发布于 2021-02-19 03:47:45

go mod tidy确保go.mod文件与模块中的源代码匹配。它添加了构建当前模块的包和依赖项所需的任何缺少的模块要求,并删除了对不提供任何相关包的模块的要求。它还会将任何缺少的条目添加到go.sum中,并删除不必要的条目。Go Modules Reference

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66260631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档