go version
)?$ go version v1.12
模块yiigo有标签v3.0.0
,但当我运行go get github.com/iiinsomnia/yiigo
时,它获得v2.1.0
,当我运行go get github.com/iiinsomnia/[email protected]
时,它显示:go get github.com/iiinsomnia/[email protected]: unexpected end of JSON input
主要问题似乎是iiinsomnia/yiigo
的v3.0.0版本在/v3
文件中缺少module
行末尾所需的go.mod
:
https://github.com/iiinsomnia/yiigo/blob/v3.0.0/go.mod#L1
module github.com/iiinsomnia/yiigo <<<< wrong, missing required /v3 at end
go 1.12
require (
github.com/go-sql-driver/mysql v1.4.1-0.20190217072658-972a708cf979
...
这已经得到纠正。
因为它现在是一个合适的v3模块,所以go get
命令应该在/v3
之前包含一个@
:
module github.com/iiinsomnia/yiigo/[email protected]
来自Go modules wiki:
如果模块版本为v2或更高版本,则模块的主要版本必须作为/ vN包含在go.mod文件中使用的模块路径的末尾(例如,
module github.com/my/mod/v2
,require github.com/my/mod/v2 v2.0.0
)和包导入路径中(例如,import "github.com/my/mod/v2/mypkg"
)。
此外,它看起来像一个相关的问题被打开,理论是奇怪的“JSON输入的意外结束”错误可能来自某些代理:
我过去完成这个的方法是使用git tags
-为你的情况这应该工作正常。
脚步:
go get -u github.com/iiinsomnia/yiigo
cd ~/go/src/github.com/iiinsomnia/yiigo
git tag
git checkout v3.0.0
go install
这将覆盖以前安装在GOPATH中的软件包,并为您检出的特定标签版本添加一个新软件包。
注意:自go模块发布以来,可能有更好的方法。
This相关文章还提供了有关如何检索项目源代码的特定版本的替代解决方案,可能会提供一些帮助。