воскресенье, 28 февраля 2021 г.

Модули в Golang: команды с поддержкой модулей, go mod vendor

Использование:

go mod vendor [-e] [-v]

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

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

go mod vendor также создает файл vendor/modules.txt, содержащий список поставленных пакетов и версий модулей, из которых они были скопированы. Когда вендоринг включен, этот манифест используется в качестве источника информации о версии модуля, о чем сообщает go list -m и go version -m. Когда команда go читает vendor/modules.txt, она проверяет, соответствуют ли версии модуля go.mod. Если go.mod изменился с момента создания vendor/modules.txt, необходимо снова запустить go.mod vendor.

Обратите внимание, что go mod vendor удаляет каталог vendor, если он существует, перед его повторным построением. Не следует вносить локальные изменения в поставленные пакеты. Команда go не проверяет, что пакеты в каталоге vendor не были изменены, но можно проверить целостность каталога vendor, запустив go mod vendor и проверив, что никаких изменений не было.

Флаг -e (добавлен в Go 1.16) заставляет go mod vendor попытаться продолжить, несмотря на ошибки, обнаруженные при загрузке пакетов.

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


Читайте также:


Комментариев нет:

Отправить комментарий