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?

go 

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.


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.


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.


22

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

go get -u -v -f all

Toma mucho tiempo !!! ¡Descarga paquetes que nunca usé en el proyecto!
Yuseferi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.