go get:JSON输入意外结束

时间:2019-03-01 02:48:54

标签: go module

您正在使用哪个版本的Go(go version)?

$ go version
v1.12

模块yiigo的标签为v3.0.0,但是当我运行go get github.com/iiinsomnia/yiigo时,它会得到v2.1.0,而当我运行go get github.com/iiinsomnia/yiigo@v3.0.0时,它会显示:{ {1}}

2 个答案:

答案 0 :(得分:0)

我过去完成此操作的一种方法是使用Tools ▶ Build System ▶ <your-custom-build-system-name>-在您的情况下应该可以正常工作。

步骤:

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

这将用您签出的特定标记版本的新软件包覆盖您GOPATH中先前安装的软件包。

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

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

答案 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/v3@v3.2.2

Go modules Wiki:

  

如果模块的版本为v2或更高版本,则go.mod文件中使用的模块路径末尾必须将模块的主要版本 作为/ vN包含在其中。 1}},module github.com/my/mod/v2)和程序包导入路径(例如require github.com/my/mod/v2 v2.0.0)中。

另外,似乎还打开了一个相关的问题,其理论是奇怪的“ JSON输入的意外结尾”错误可能来自某些代理:

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