Я обновился до go1.11 и пытаюсь использовать модули go.Я клонировал проект и запустил go build
, который создает файлы go.mod
и go.sum
со всеми моими зависимостями.
Теперь я хотел бы продать файлы, поэтому я запускаю команду go mod vendor
К сожалению, перейти к модам, продающим старую версию go-bindata .Мой проект не может быть собран, потому что вызов функции не существует.Глядя на исходный код поставщика go-bindata
, я вижу, что он отличается от того, что доступно в основной ветке проекта go-bindata
.
В моем файле go.mod
есть следующее:
github.com/jteeuwen/go-bindata v3.0.7+incompatible
В моем файле go.sum
есть следующее:
github.com/jteeuwen/go-bindata v3.0.7+incompatible h1:91Uy4d9SYVr1kyTJ15wJsog+esAZZl7JmEfTkwmhJts=
github.com/jteeuwen/go-bindata v3.0.7+incompatible/go.mod h1:JVvhzYOiGBnFSYRyV00iY8q7/0PThjIYav1p9h5dmKs=
В GitHub самый последний тег для go-bindata
- v3.0.7 в основной ветви.
Любые идеи, почему go mod
ссылается на старую версию и как я могу это исправить.На другом компьютере запуск go get -u https://github.com/jteeuwen/go-bindata
позволяет получить самый последний проект.Почему go mod
не делает то же самое?
РЕДАКТИРОВАТЬ: Проблема в том, что go mod
говорит, что он получил v3.0.7, но исходный код не совпадает с тем, что в настоящее время доступно на Github с 3.0.7тег.То, что у меня локально, выглядит как v3.0.6, но помечено как v3.0.7.
В версии на Github есть структура, которая выглядит следующим образом: ссылка на источник
type Config struct {
//... some other fields
NoMetadata bool
}
Но в моей локальной версии поставщика структура Config не имеет поля NoMetadata
.Похоже, go mod
использует более старый тег и думает, что использует самый последний.