Como faço para usar a "vendor" com módulos?
Para usar a vendor com módulos:
-
go mod vendorredefine o diretório do vendor do módulo principal para incluir todos os pacotes necessários para construir e testar todos os pacotes do módulo com base no estado dos arquivosgo.mode do código-fonte.go. -
Desde Go 1.14, se existe um diretório
vendorna raiz e ogo.moddeclarago 1.14ou superior, comandos comogo buildusam esse diretório automaticamente. -
A flag
-mod=vendor(por exemplo,go build -mod=vendor ./...) escolhe esse modo explicitamente. O Go confere sevendor/modules.txtestá consistente com os requisitos e substituições dogo.mod; se houver divergência, executego mod vendornovamente. Diretóriosvendorde dependências são ignorados. -
Algumas pessoas vão querer optar pelo vendor, para isso deve se definir uma variável de ambiente
GOFLAGS=-mod=vendor.
Em um workspace, use go work vendor (Go 1.22+) para gerar o vendor na raiz do workspace. Para trabalhar apenas no módulo atual, use GOWORK=off go mod vendor.
Veja Vendoring e Workspace Mode.