суббота, 13 февраля 2021 г.

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

Все команды, загружающие информацию о пакетах, поддерживают модули. Это включает в себя:

  • go build
  • go fix
  • go generate
  • go get
  • go install
  • go list
  • go run
  • go test
  • go vet

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

  • Флаг -mod определяет, может ли go.mod обновляться автоматически и будет ли использоваться каталог поставщика.
    • -mod=mod указывает команде go игнорировать каталог поставщика (vendor directory) и автоматически обновлять go.mod, например, когда импортированный пакет не предоставляется каким-либо известным модулем.
    • -mod=readonly указывает команде go игнорировать каталог поставщика (vendor directory) и сообщать об ошибке, если go.mod необходимо обновить.
    • -mod=vendor указывает команде go использовать каталог поставщика (vendor directory). В этом режиме команда go не будет использовать сеть или кеш модуля.
    • По умолчанию, если версия go в go.mod - 1.14 или выше и присутствует каталог поставщика (vendor directory), команда go будет действовать так, как если бы использовалось -mod=vendor. В противном случае команда go будет действовать так, как если бы использовалось -mod=mod.
  • Флаг -modcacherw указывает команде go создавать новые каталоги в кеше модуля с разрешениями на чтение и запись вместо того, чтобы делать их доступными только для чтения. Когда этот флаг используется последовательно (обычно путем установки GOFLAGS=-modcacherw в среде или путем запуска go env -w GOFLAGS=-modcacherw), кеш модуля можно удалить с помощью таких команд, как rm -r, без предварительного изменения разрешений. Команда go clean -modcache может использоваться для удаления кеша модуля, независимо от того, использовалась ли -modcacherw.
  • Флаг -modfile=file.mod указывает команде go прочитать (и, возможно, записать) альтернативный файл вместо go.mod в корневом каталоге модуля. Имя файла должно заканчиваться на .mod. Файл с именем go.mod все еще должен присутствовать, чтобы определить корневой каталог модуля, но к нему нет доступа. Если указан -modfile, также используется альтернативный файл go.sum: его путь определяется флагом -modfile путем обрезки расширения .mod и добавления .sum.

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


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

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