猿问

go run main.go 更改 go module 到旧版本

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



aluckdog
浏览 175回答 3
3回答

蛊毒传说

您可以使用 要求 Go 工具不要触摸您的 .实际上,这是Go 1.16中的默认情况,因此我建议您升级。-mod=readonlygo.mod[FWIW,版本 v4.0.3 听起来像是比 v1.2.0 更新的版本]

杨魅力

这是因为模块作者将模块升级为正式支持Go模块(即)。为此并保留相同的URL,他们必须将模块版本设置为。因此,认为这比实际上不是(认为更大的数字晚了是合理的)。go mod1.xgo mod4.x1.x某些模块作者会创建一个新版本,例如 ,但这会更改从中获取模块的 URL。有些作者对此感到满意,有些则不那么好。v5在Go 1.16中,可以以前版本的模块 - 这是文件中的一个标记,告诉Go不要使用该版本。有些作者可能会这样做。retractgo.mod希望这能解释为什么,以及一些模块作者是如何变化的。在这种情况下,它不能完全解决您的问题,但可以正常工作。-mod=readonlyFWIW,此处的模块作者现已创建,因此此特定模块不存在此问题。v5.x

精慕HU

go mod tidy确保 go.mod 文件与模块中的源代码匹配。它添加构建当前模块的包和依赖项所需的任何缺少的模块要求,并删除对不提供任何相关包的模块的要求。它还会将任何缺少的条目添加到 go.sum 并删除不必要的条目。Go 模块参考
随时随地看视频慕课网APP

相关分类

Go
我要回答