Cómo obtener todos los archivos de dependencia para un programa usando Golang

90

Hago un programa en golang y después de completar el código, si quiero ejecutar este código en otra PC o VM, entonces no obtiene todos los archivos del paquete de dependencia. ¿Cómo puedo obtener todos los archivos de dependencia?


fuente

Respuestas:

10

Puede usarlo godep saveen su PC local donde complete su programa. godep save recopila todos los archivos de dependencia por usted. Cuando se mueva a otra PC, simplemente copie la carpeta Godep con su código y resolverá sus problemas.

Animesh Kumar Paul
fuente
7
Quizás sea obvio para algunas personas, pero tuve que ir a investigar esto. Resulta que necesitas instalar el paquete godep o dep para Go. El stie de Github para esto está aquí: github.com/tools/godep
Patratacus
212

Puede ejecutar go get -d ./...desde un directorio de su proyecto para descargar todas las dependencias go-gettable.
O copie todo el srcsubdirectorio de su GOPATH a la máquina de destino.
...es un patrón especial, dice que baje de forma recursiva.

RoninDev
fuente
1
Si necesito ejecutar / modificar el código, entonces no encuentra paquetes.
1
Sé que puedo obtener paquetes yendo a buscar <paquete>, pero lleva mucho tiempo y es difícil cuando el programa usa muchos paquetes.
3
-t también instalará dependencias de prueba
honzajde
3
@AlbertoSchiabel ...es un patrón especial. Dice que baje de forma recursiva.
Actualicé
¡Gracias @RoninDev! Al principio iba a editar tu respuesta a ./., porque después de haber probado el comando you en mi pc se atascó (y ahora sé por qué, ya que la búsqueda recursiva de archivos go puede ser bastante costosa), pero luego me di cuenta de que era mejor preguntar primero. ¡Gracias!
Alberto Schiabel
51

Tratar

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

o

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

El segundo enumerará todas las subdependencias, el primero solo los paquetes importados directamente.

fiatjaf
fuente
22

El siguiente comando funciona para mí, descarga todas las dependencias.

go get -u -v -f all
infiniteLearner
fuente
Toma mucho tiempo !!! ¡Descarga paquetes que nunca usé en el proyecto!
Yuseferi