Ошибка: флаг сборки -mod = vendor действителен только при использовании модулей при сборке проекта Go

Согласно этот документ Мне нужно добавить -mod=vendor в мою команду сборки, чтобы использовать мою локальную vendor папку:

По умолчанию команды go, такие как go build, игнорируют каталог vendor в модульном режиме. Флаг -mod = vendor (например, go build -mod = vendor) указывает командам go использовать каталог поставщика верхнего уровня основного модуля для удовлетворения зависимостей.

Когда я запускаю эту команду:

go build -mod=vendor -a -ldflags "-s -w -X github.com/my-api/pkg/config.Version=169.3988801" -o bin/my-api

Я получаю такую ​​ошибку:

build flag -mod=vendor only valid when using modules

Локально команда работает должным образом, ошибка возникает только на сервере сборки.


person Nicholas    schedule 13.04.2019    source источник
comment
Я думаю, что ключевая часть помощи, которую вы показываете, - это когда вы находитесь в модульном режиме. Это произойдет только тогда, когда вы работаете над кодом вне GOPATH или если вы установили GO111MODULE = on переменной среды. golang.org/cmd/go/#hdr-Prementary_module_support   -  person Iain Duncan    schedule 13.04.2019


Ответы (1)


Я думаю, что ключевая часть справки, которую вы показываете, - это when in module mode. Это произойдет только тогда, когда вы работаете над кодом за пределами GOPATH или если вы установили переменную среды GO111MODULE=on, поэтому я думаю, что вы установили ее в своей локальной среде, но не на сервере сборки.

Более подробная информация о включении поддержки модуля находится здесь:

https://golang.org/cmd/go/#hdr-Preservations_module_support

person Iain Duncan    schedule 13.04.2019