Как использовать go list -u -m all с режимом вендора? - PullRequest
0 голосов
/ 07 марта 2020

Я только что обновился до go1.14 и выполнил команду go list -u -m all с параметром -mod = vendor GOFLAG, я обнаружил, что не может определить доступные обновления, используя каталог поставщика . Я просмотрел примечания к выпуску (https://golang.org/doc/go1.14#go -команда ), но не мог понять, почему эта ошибка. (Мои go .mod и vendor / modules.txt были в син c).

Когда использовать -mod = только для чтения, как go list -mod = readonly -u -m все команды? Что не так с использованием go list -u -m all with -mod=vendor?

Любые указатели будут высоко оценены. Спасибо.

GOGOPATH=/home/vagrant/go_workspace
GO111MODULE=on
GOFLAGS=-mod=vendor
============================================
go list  -u -m all
go list -m: can't determine available upgrades using the vendor directory
        (Use -mod=mod or -mod=readonly to bypass.)

1 Ответ

2 голосов
/ 12 марта 2020

-mod=vendor запрашивает, чтобы команда go разрешила информацию о ваших зависимостях, используя only информацию в каталоге vendor.

Каталог vendor обязательно не содержит информация о доступных обновлениях, поскольку сам каталог vendor создается в один момент времени. Чтобы определить доступные обновления, необходимо установить сетевое подключение либо к прокси-серверу модуля, либо к исходному серверу, чтобы узнать, какие другие версии стали доступны.

Таким образом, эти два флага действительно несовместимы: либо вы можете проверить для обновлений, или вы можете использовать только то, что находится в каталоге vendor, но не оба сразу.

...