Como obter todos os arquivos de dependência de um programa usando Golang

91

Eu faço um programa em golang e após completar o código, se eu quiser rodar este código em outro pc ou VM, então ele não pega todos os arquivos do pacote de dependência. como posso obter todos os arquivos de dependência?


fonte

Respostas:

9

Você pode usar godep saveem seu PC local, onde conclui o programa. godep save reúne todos os arquivos de dependência para você. Quando mudar para outro pc, basta copiar a pasta Godep com seu código e ele resolverá seus problemas.

Animesh Kumar Paul
fonte
7
Talvez seja óbvio para algumas pessoas, mas eu tive que desenterrar isso. Acontece que você precisa instalar o pacote godep ou dep para Go. O estilo do Github para isso está aqui: github.com/tools/godep
Patratacus
218

Você pode executar a go get -d ./...partir de um diretório do seu projeto para baixar todas as dependências go-gettable.
Ou copie todos os srcsubdiretórios de seu GOPATH para a máquina de destino.
...é um padrão especial, diz para descer recursivamente.

RoninDev
fonte
1
Se eu precisar executar / modificar o código, ele não encontrará pacotes.
1
Eu sei que posso obter pacotes ao obter <pacote>, mas é muito demorado e difícil quando o programa usa muitos pacotes.
4
-t instalará também as dependências de teste
honzajde
3
@AlbertoSchiabel ...é um padrão especial. Diz para descer recursivamente. Eu atualizei uma resposta
RoninDev
Obrigado @RoninDev! A princípio eu ia editar sua resposta para ./., porque depois de tentar o seu comando no meu pc meio que travou (e agora eu sei o porquê, já que a busca recursiva de arquivos go pode ser bem cara), mas depois percebi que era melhor perguntar primeiro. Obrigado!
Alberto Schiabel
52

Experimentar

go list -f '{{ join .Imports "\n" }}'

ou

go list -f '{{ join .Deps "\n" }}'

O segundo listará todas as subdependências, o primeiro apenas os pacotes importados diretamente.

fiatjaf
fonte
24

O comando abaixo funciona para mim, ele baixa todas as dependências.

go get -u -v -f all
infiniteLearner
fonte
leva muito tempo !!! ele baixa pacotes que nunca usei no projeto!
Yuseferi