Все команды, загружающие информацию о пакетах, поддерживают модули. Это включает в себя:
- 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.
Читайте также:
- Модули в Golang: +incompatible версии
- Модули в Golang: минимальная совместимость модулей
- Модули в Golang: команды с поддержкой модулей
Комментариев нет:
Отправить комментарий