понедельник, 1 марта 2021 г.

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

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

go version [-m] [-v] [file ...]

Пример:

# Печатает версию Go, используемую для сборки go.
$ go version

# Печатает версию Go, 
# используемую для сборки определенного исполняемого файла.
$ go version ~/go/bin/gopls

# Печатает версию Go и версии модуля, 
# использованные для сборки определенного исполняемого файла.
$ go version -m ~/go/bin/gopls

# Печатает версию Go и версии модуля, 
# используемые для сборки исполняемых файлов в каталоге.
$ go version -m ~/go/bin/

go version сообщает версию Go, использованную для создания каждого исполняемого файла, указанного в командной строке.

Если в командной строке не указаны имена файлов, go version выводит информацию о собственной версии.

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

Флаг -m заставляет go version печатать информацию о версии встроенного модуля каждого исполняемого файла, если она доступна. Для каждого исполняемого файла команда go version -m распечатывает таблицу со столбцами, разделенными табуляцией, как показано ниже.

$ go version -m ~/go/bin/goimports
/home/jrgopher/go/bin/goimports: go1.14.3
        path    golang.org/x/tools/cmd/goimports
        mod     golang.org/x/tools      v0.0.0-20200518203908-8018eb2c26ba      h1:0Lcy64USfQQL6GAJma8BdHCgeofcchQj+Z7j0SXYAzU=
        dep     golang.org/x/mod        v0.2.0          h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
        dep     golang.org/x/xerrors    v0.0.0-20191204190536-9bdfabe68543      h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=

Формат таблицы может измениться в будущем. Эту же информацию можно получить из runtime/debug.ReadBuildInfo.

Значение каждой строки в таблице определяется словом в первом столбце.

  • path: путь к основному пакету, который используется для сборки исполняемого файла.
  • mod: модуль, содержащий основной пакет. Столбцы - это путь к модулю, версия и сумма соответственно. У основного модуля есть версия (devel) и нет суммы.
  • dep: модуль, который предоставил один или несколько пакетов, связанных с исполняемым файлом. Тот же формат, что и у mod.
  • =>: замена модуля на предыдущей строке. Если заменой является локальный каталог, отображается только путь к каталогу (без версии или суммы). Если замена представляет собой версию модуля, в списке указываются путь, версия и сумма, как в случае с mod и dep. Замененный модуль не имеет суммы.

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


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

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