go mod tidy提示go mod tidy -go=1.16 && go mod tidy -go=1.17
goland中使用go mod tidy提示如下错误
错误原因
> go mod tidy
github.com/myrepo/myproj imports
go.k6.io/k6 imports
go.k6.io/k6/cmd imports
github.com/fatih/color loaded from github.com/fatih/color@v1.12.0,
but go 1.16 would select v1.13.0
To upgrade to the versions selected by go 1.16:
go mod tidy -go=1.16 && go mod tidy -go=1.17
If reproducibility with go 1.16 is not needed:
go mod tidy -compat=1.17
For other options, see:
https://golang.org/doc/modules/pruning
解决办法:可以参考如下连接中,提到的:
go modules - go mod tidy error message: “but go 1.16 would select” - Stack Overflow
截图:
翻译
总结:升级你的go 版本
升级go 版本到 1.18
参考:
下载源
windows下,go版本升级到1.18
我是在goland,自己的工作目录下面执行更新操作的,在cmd中应该也是可以的
1.下载源
go install github.com/SunJary/dl/go1.18@latest // 默认使用清华大学源下载 ustc
此时在你的%GOPATH%/bin目录下会生成一个go1.18.exe文件,我的exe文件如下
在这个路径中输入cmd(或者在goland中,进入到这个目录也可以)- 下方也可以直接打开cmd,然后进入到这个目录也行
如下图
1.在go1.18.exe所在路径下输入 go1.18.exe version 会提示 需要下载go 1.18 的sdk
2.go1.18 download 下载go1.18的sdk
3.同路径下输入go1.18 version,版本为go1.18,但是输入go version 版本还是之前的版本
4.替换在环境变量中的go sdk bin目录
替换path中sdk的bin路径 以及 goland中GOROOT路径
总结:重新下载sdk,修改环境变量中的path,修改goland中go sdk路径
2.替换
也是根据之前cmd中的提示,找到go1.18的sdk存放路径,上面截图中提示:go1.18存放路径为C:\Users\Administrator\sdk\go1.18 如下
下面二选一
一
:修改 或者 添加 go1.18的bin目录,如下,如果之前你这里是老版本的go sdk bin目录路径,就将其替换成go1.18的sdk的路径即可
还有用户变量的Path中,也加入C:\Users\Administrator\sdk\go1.18\bin
二
:拷贝go 1.18的sdk目录到任何你想存放这个sdk的路径中,然后修改go sdk的一些环境变量。
将go1.18 的sdk 移动到你原来下载的那个go sdk路径中去,如下:
我的老版本的go sdk路径
为了节省C盘空间,我将go1.18的sdk移动到了下面的路径中
然后 添加go1.18 sdk下的bin目录到Path中(即go.exe文件所在的路径 - 这跟最初修改的go sdk的步骤基本一样)
上面用户变量中的Path也更新一下(都更新反正不会有坏处 - 用户中的Path里是使用cmd时,可以不进入exe所在路径就可以执行文件)
此时,在cmd中的任何位置执行go version,发现版本已经更新成了1.18 (理解成:重新下载了go 的sdk而已,只是修改了一些环境依赖)
回到goland中,执行go version,你会发现,你的go版本可能还是以前的老版本,因为goland中也是需要修改go sdk的路径的,如下,将GOROOT替换成,你的go 1.18的sdk路径
,然后在goland的terminal中输入go version,发现已经到了1.18版本了
此时,将你的go.mod中的sdk依赖
,修改成go 1.18,最后再执行 go mod tidy
就不会再有错误提示了
上方go mod tidy之后,不会再有如下的错误了
github.com/myrepo/myproj imports
go.k6.io/k6 imports
go.k6.io/k6/cmd imports
github.com/fatih/color loaded from github.com/fatih/color@v1.12.0,
but go 1.16 would select v1.13.0
To upgrade to the versions selected by go 1.16:
go mod tidy -go=1.16 && go mod tidy -go=1.17
If reproducibility with go 1.16 is not needed:
go mod tidy -compat=1.17
For other options, see:
https://golang.org/doc/modules/pruning