Чтобы обеспечить плавный переход от GOPATH к модулям, команда go может загружать и создавать пакеты в режиме с поддержкой модулей из репозиториев, которые не были перенесены в модули, путем добавления файла go.mod.
Когда команда go загружает модуль данной версии непосредственно из репозитория, она ищет URL репозитория для пути к модулю, сопоставляет версию с ревизией в репозитории, затем извлекает архив репозитория этой ревизии. Если путь к модулю равен корневому пути репозитория, а корневой каталог репозитория не содержит файла go.mod, команда go синтезирует файл go.mod в кеше модуля, который содержит директиву module и ничего больше. Поскольку синтетические файлы go.mod не содержат директив require для своих зависимостей, другим модулям, зависящим от них, могут потребоваться дополнительные директивы require (с // indirect комментариями), чтобы гарантировать, что каждая зависимость выбирается одной и той же версии при каждой сборке.
Когда команда go загружает модуль с прокси, она загружает файл go.mod отдельно от остального содержимого модуля. Предполагается, что прокси будет обслуживать синтетический файл go.mod, если в исходном модуле его не было.
Читайте также:
- Модули в Golang: файл go.mod, грамматика
- Модули в Golang: файл go.mod, автоматические обновления
- Модули в Golang: выбор минимальной версии (MVS)
Комментариев нет:
Отправить комментарий