Go/Модули: различия между версиями

Материал из DZWIKI
< Go
Перейти к навигации Перейти к поиску
 
Строка 43: Строка 43:
== Примечания ==
== Примечания ==
{{Примечания|2}}
{{Примечания|2}}
== Ссылки и источники ==
* {{cite web
|url          = https://dev-gang.ru/article/ponimanie-gomod-i-gosum-mv5rzfonhn/
|title        = Понимание go.mod и go.sum
|lang        = ru
|date        = 2021-08-29
|access-date  = 2022-08-12
|archive-url  = https://web.archive.org/web/20220812130451/https://dev-gang.ru/article/ponimanie-gomod-i-gosum-mv5rzfonhn/
|archive-date = 2022-08-12
}}

Текущая версия от 13:05, 12 августа 2022

Файл go.mod

Файл go.mod - это корень управления зависимостями в GoLang. Все модули, которые необходимы или будут использоваться в проекте, хранятся в файле go.mod.

Для всех пакетов, которые импортируются / используются в проекте, создаются записи этих модулей в go.mod. Наличие файла go.mod экономит усилия по запуску команды go get для каждого зависимого модуля для успешного запуска проекта.


Файл go.sum

Файл go.sum - это сгенерированный файл, вам не нужно редактировать или изменять этот файл.

Команды

go get

Для установки определенного пакета, используйте команде go get, например go get go.mongodb.org/mongo-driver.

go mod init

go mod init — создает новый модуль, инициализируя файл go.mod, описывающий модуль. Вначале он только добавит путь к модулю и версию Go в файл go.mod.

После выполнения любой команды создания пакета, такой как go build, go test в первый раз, он будет устанавливать все пакеты с определенными версиями т.е. которые являются последними на данный момент. Он также создаст файл go.sum, который поддерживает контрольную сумму, поэтому при повторном запуске проекта он не установит все пакеты снова. Он использует кеш, который хранится в каталоге $GOPATH/pkg/mod (каталог кеша модуля).

go mod tidy

go mod tidy обеспечивает соответствие файла go.mod исходному коду модуля. Он добавляет любые недостающие требования к модулю, необходимые для сборки пакетов и зависимостей текущего модуля, если есть какие-то неиспользуемые зависимости, go mod tidy соответственно удалит их из go.mod. Он также добавляет все недостающие записи в go.sum и удаляет ненужные записи.

Когда мы обновляем версию определенного пакета в go.mod, нам нужно запустить команду go mod tidy, чтобы обновить контрольные суммы в go.sum

go mod vendor

Он создает каталог поставщиков с доступными версиями. Он копирует все сторонние зависимости в папку поставщика в корне вашего проекта.

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

go clean -modcache

Эта команда используется для очистки кеша модов, который хранится в $GOPATH/pkg/mod. Эта команда используется для удаления установленных пакетов.

Флаг -modcache удаляет весь кеш загрузки модуля, включая распакованный исходный код версий зависимостей.

Примечания

Ссылки и источники