Go Modules
Go Modules
go mod init <import-name>
- создает новый модульStandard commands like
go build
orgo test
will automatically add new dependencies as needed to satisfy imports (updatinggo.mod
and downloading the new dependencies).
Что бы импортировать модуль -- он должен быть published
go get <url>
забирает последнюю версию модуля и обновляетgo.sum
go get -u
- обновить модуль до последней минорной или патч версииgo get -u=patch
- обновить модуль до последней патч версииgo get package@v1.2.3
- обновится до конкретной версииgo get package@<commit-has>
- взять версию пакета по конкретному коммиту.go get ./...
,go mod download
- загрузит все зависимости в случае свежего репозитория (аналогичноnpm install
). Так же зависимости будут установлены когда выполняетсяgo run
илиgo build
, но нужно очистить кэшgo clean -cache -modcache -i -r
.go list -m -version <package-name>
- список версий пакета
Нет автоматического способа обновится на другую мажорную версию. С точки зрения Go модулей, мажорная версия — это совершенно другой пакет.
Есть у вас есть модуль, то версия модуля делается путем добавления git tag-а и отправки его в репозиторий:
Версии 2 и более должны сменить путь импорта. Теперь это разные библиотеки. Мы сделаем это добавив новый версионный путь к названию нашего модуля.
Чтобы обновиться, надо соответствующим образом изменить мою программу:
go mod tidy
чистит зависимостиgo mod why <module>
- скажет как этот модуль используется
On a more general note, the purpose of go mod tidy
is to also add any dependencies needed for other combinations of OS, architecture, and build tags. Make sure to run this before every release.
By default all our packages from all projects are downloaded into $GOPATH/pkg/mod
directory. If you use Docker containers when developing stuff locally, this may become an issue because dependencies are stored outside of project path (shared with a host filesystem via a bind-mounted volume).
Set
GOPATH
to the projectAnother way is to copy over your project dependencies to vendor folder.
Vendoring
go mod vendor
- создаст каталог vendor с исходниками зависимостей.
Last updated