`go get`: неожиданный конец ввода JSON - PullRequest
0 голосов
/ 01 марта 2019

Какую версию 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, он показывает: go get github.com/iiinsomnia/yiigo@v3.0.0: unexpected end of JSON input

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

Основная проблема заключается в том, что версия iiinsomnia/yiigo версии 3.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 модулей 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» могла быть вызвана некоторым прокси:

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

0 голосов
/ 01 марта 2019

В прошлом я достиг этого, используя 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.

В этом посте, связанном с , также представлены альтернативные решения о том, как извлечь конкретную версию проекта.исходный код, который может оказать некоторую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...