Использование:
go mod edit [editing flags] [-fmt|-print|-json] [go.mod]
Пример:
# Добавить директиву replace.
$ go mod edit -replace example.com/a@v1.0.0=./a
# Удалить директиву replace.
$ go mod edit -dropreplace example.com/a@v1.0.0
# Установить версию go, добавить требование и распечатать файл
# вместо записи на диск.
$ go mod edit -go=1.14 -require=example.com/m@v1.0.0 -print
# Отформатировать файл go.mod.
$ go mod edit -fmt
# Отформатировать и распечатать другой файл .mod.
$ go mod edit -print tools.mod
# Распечатать JSON-представление файла go.mod.
$ go mod edit -json
Команда go mod edit предоставляет интерфейс командной строки для редактирования и форматирования файлов go.mod для использования в основном инструментами и скриптами. go mod edit читает только один файл go.mod; он не ищет информацию о других модулях. По умолчанию go mod edit читает и записывает файл go.mod основного модуля, но после флагов редактирования можно указать другой целевой файл.
Флаги редактирования определяют последовательность операций редактирования.
- Флаг -module изменяет путь к модулю (строка module файла go.mod).
- Флаг -go=version устанавливает ожидаемую языковую версию Go.
- Флаги -require=path@version и -droprequire=path добавляют и удаляют требование для указанного пути и версии модуля. Обратите внимание, что -require отменяет все существующие требования к пути. Эти флаги в основном предназначены для инструментов, которые понимают граф модуля. Пользователи должны предпочесть go get path@version или go get path@none, которые вносят другие корректировки go.mod по мере необходимости, чтобы удовлетворить ограничения, налагаемые другими модулями.
- Флаги -exclude=path@version и -dropexclude=path@version добавляют и удаляют исключение для данного пути и версии модуля. Обратите внимание, что -exclude=path@version нельзя использовать, если это исключение уже существует.
- Флаг -replace=old[@v]=new[@v] добавляет замену данной пары пути и версии модуля. Если @v в old@v опущен, добавляется замена без версии в левой части, которая применяется ко всем версиям старого пути к модулю. Если @v в new@v опущен, новый путь должен быть корневым каталогом локального модуля, а не путем к модулю. Обратите внимание, что -replace отменяет любые избыточные замены для old[@v], поэтому отсутствие @v приведет к удалению замен для определенных версий.
- Флаг -dropreplace=old[@v] отменяет замену указанной пары пути и версии модуля. Если указан @v, замена данной версией отбрасывается. Существующая замена без версии с левой стороны может заменить модуль. Если @v опущен, замена без версии отбрасывается.
- Флаги -retract=version и -dropretract=version добавляют и удаляют отзыв (retraction) для данной версии, который может быть отдельной версией (например, v1.2.3) или интервалом (например, [v1.1.0, v1.2.0]). Обратите внимание, что флаг -retract не может добавлять поясняющий комментарий для директивы retract. Рекомендуются пояснительные комментарии, которые можно показать с помощью go list -m -u и других команд.
Флаги редактирования могут повторяться. Изменения применяются в указанном порядке.
go mod edit имеет дополнительные флаги, управляющие его выводом.
- Флаг -fmt переформатирует файл go.mod без внесения других изменений. Это переформатирование также подразумевается любыми другими модификациями, в которых используется или переписывается файл go.mod. Единственный раз, когда этот флаг необходим, если не указаны другие флаги, как в go mod edit -fmt.
- Флаг -print печатает окончательный файл go.mod в его текстовом формате вместо того, чтобы записывать его обратно на диск.
- Флаг -json печатает окончательный файл go.mod в формате JSON вместо того, чтобы записывать его обратно на диск в текстовом формате. Вывод JSON соответствует этим типам Go:
type Module struct {
Path string
Version string
}
type GoMod struct {
Module Module
Go string
Require []Require
Exclude []Module
Replace []Replace
}
type Require struct {
Path string
Version string
Indirect bool
}
type Replace struct {
Old Module
New Module
}
type Retract struct {
Low string
High string
Rationale string
}
Обратите внимание, что это описывает только сам файл go.mod, а не другие модули, на которые косвенно ссылаются. Чтобы получить полный набор модулей, доступных для сборки, используйте go list -m -json all.
Например, инструмент может получить файл go.mod как структуру данных, проанализировав вывод команды go mod edit -json, а затем может внести изменения, вызвав команду go mod edit с -require, -exclude и т. д.
Инструменты также могут использовать пакет golang.org/x/mod/modfile для анализа, редактирования и форматирования файлов go.mod.
Читайте также:
- Модули в Golang: команды с поддержкой модулей, go list -m
- Модули в Golang: команды с поддержкой модулей, go install
- Модули в Golang: команды с поддержкой модулей, go mod download
Комментариев нет:
Отправить комментарий