Ответы:
go get
установит пакет в первый каталог, указанный в GOPATH
(переменная среды, которая может содержать разделенный двоеточиями список каталогов). Вы можете использовать go get -u
для обновления существующих пакетов.
Вы также можете использовать go get -u all
для обновления всех пакетов в вашемGOPATH
Для более крупных проектов может быть целесообразно создать разные GOPATH для каждого проекта, чтобы обновление библиотеки в проекте A не вызывало проблем в проекте B.
Введите, go help gopath
чтобы узнать больше о GOPATH
переменной среды.
go get -u all
извините за воскресение, но на всякий случай кто-то еще искал.
go get -u all
больше не работает! Выполнение этой команды в GOPATH, по крайней мере для Go 1.13, выдаст предупреждение: «warning» all «matched no package»
Ответ @tux хорош, просто хотел добавить, что вы можете использовать go get для обновления определенного пакета:
go get -u full_package_name
Поскольку в этом вопросе упоминаются сторонние библиотеки, а не все пакеты, вы, вероятно, захотите использовать групповые символы.
Вариант использования: я просто хочу обновить все свои пакеты, полученные из Github VCS, тогда вы просто скажете:
go get -u github.com/... // ('...' being the wildcard).
Это приведет к обновлению только ваших пакетов github в текущем $GOPATH
То же самое относится и к VCS, скажем, вы хотите обновить только все пакеты из репозитория ogranizaiton A, поскольку они выпустили исправление, от которого вы зависите:
go get -u github.com/orgA/...
Вышеуказанные ответы имеют следующие проблемы:
Чтобы избежать этого, сделайте следующее:
go get -d
перейти 1.13
(exec из корневого каталога модуля)
Обновить указанные зависимости:
go get -u <package-name>
Обновите все прямые и косвенные зависимости до последних незначительных или исправлений (предварительные выпуски игнорируются):
go get -u ./...
# or
go get -u=patch ./...
Ссылка:
https://github.com/golang/go/wiki/Modules#daily-workflow
go help get
Чтобы указать версии или зафиксировать:
go get -u otherpackage@1.2.3
go get -u otherpackage@git-sha
Смотрите https://github.com/golang/go/wiki/Modules#daily-workflow
Перейти к пути и введите
go get -u ./..
Это обновит все требуемые пакеты.
go get -u ./...
(3 точки)