`go get`:JSON输入意外结束

问题描述 投票:1回答:1

What version of Go are you using (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

go module
1个回答
0
投票

主要问题似乎是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/v2require github.com/my/mod/v2 v2.0.0)和包导入路径中(例如,import "github.com/my/mod/v2/mypkg")。

此外,它看起来像一个相关的问题被打开,理论是奇怪的“JSON输入的意外结束”错误可能来自某些代理:

https://github.com/golang/go/issues/30494


-1
投票

我过去完成这个的方法是使用git tags-为你的情况这应该工作正常。

脚步:

  1. go get -u github.com/iiinsomnia/yiigo
  2. cd ~/go/src/github.com/iiinsomnia/yiigo
  3. git tag
  4. 找到您要在列表中安装的标签发布版本
  5. git checkout v3.0.0
  6. go install

这将覆盖以前安装在GOPATH中的软件包,并为您检出的特定标签版本添加一个新软件包。

注意:自go模块发布以来,可能有更好的方法。

This相关文章还提供了有关如何检索项目源代码的特定版本的替代解决方案,可能会提供一些帮助。

© www.soinside.com 2019 - 2024. All rights reserved.