четверг, 27 июня 2019 г.

Команды go: go mod edit, редактирование go.mod из инструментов или скриптов

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

go mod edit [editing flags] [go.mod]

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

Флаги редактирования определяют последовательность операций редактирования.

Флаг -fmt переформатирует файл go.mod без внесения других изменений. Это переформатирование также подразумевается любыми другими модификациями, которые используют или переписывают файл go.mod. Единственный раз, когда нужен этот флаг, это если другие флаги не указаны, как в 'go mod edit -fmt'.

Флаг -module изменяет путь к модулю (строка модуля файла go.mod).

Флаги -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] и -dropreplace=old[@v] добавляют и удаляют замену указанного пути к модулю и пары версий. Если @v в old@v опущено, замена применяется ко всем версиям со старым путем к модулю. Если @v в new@v опущен, новый путь должен быть корневым каталогом локального модуля, а не путем к модулю. Обратите внимание, что -replace заменяет любые существующие замены для old[@v].

Флаги редактирования -require, -droprequire, -exclude, -dropexclude, -replace и -dropreplace могут быть повторены, и изменения применяются в указанном порядке.

Флаг -go=version устанавливает ожидаемую версию языка Go.

Флаг -print печатает окончательный вариант go.mod в текстовом формате, а не записывает его обратно в go.mod.

Флаг -json печатает конечный файл go.mod в формате JSON, а не записывает его обратно в go.mod. Вывод 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
}

Обратите внимание, что это описывает только сам файл go.mod, а не другие модули, на которые ссылаются косвенно. Для полного набора модулей, доступных для сборки, используйте 'go list -m -json all'.

Например, инструмент может получить go.mod как структуру данных, проанализировав выходные данные 'go mod edit -json', а затем может внести изменения, вызвав 'go mod edit' с -require, -exclude и так далее.


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


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

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