Come ottenere tutti i file delle dipendenze per un programma che utilizza Golang


90

Creo un programma in golang e dopo aver completato il codice, se voglio eseguire questo codice su un altro pc o VM, allora non ottiene tutti i file del pacchetto delle dipendenze. come posso ottenere tutti i file delle dipendenze?

go 

Risposte:


10

Puoi usarlo godep savenel tuo PC locale dove completi il ​​tuo programma. godep save raccoglie tutti i file delle dipendenze per te. Quando ti sposti su un altro PC, copia semplicemente la cartella Godep con il tuo codice e risolverà i tuoi problemi.


7
Forse è ovvio per alcune persone, ma ho dovuto scavare. Risulta che è necessario installare il pacchetto godep o dep su Go. Lo stie di Github per questo è qui: github.com/tools/godep
Patratacus

212

È possibile eseguire go get -d ./...da una directory del progetto per scaricare tutte le dipendenze utilizzabili.
Oppure copia tutta la srcsottodirectory dal tuo GOPATH alla macchina di destinazione.
...è uno schema speciale, dice di scendere ricorsivamente.


1
Se ho bisogno di eseguire / modificare il codice, non trova i pacchetti.

1
So di poter ottenere i pacchetti andando a ottenere <package> ma è molto dispendioso in termini di tempo e difficile quando il programma utilizza molti pacchetti.

3
-t installerà anche le dipendenze di test
honzajde

3
@AlbertoSchiabel ...è un modello speciale. Indica di scendere ricorsivamente. Ho aggiornato una risposta
RoninDev

Grazie @RoninDev! All'inizio stavo per modificare la tua risposta ./., perché dopo aver provato il comando sul mio pc si è bloccato (e ora so perché, dato che la ricerca ricorsiva dei file go può essere piuttosto costosa), ma poi ho capito che era meglio chiedere prima. Grazie!
Alberto Schiabel

51

Provare

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

o

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

Il secondo elencherà tutte le sottodipendenze, il primo solo i pacchetti importati direttamente.


22

Il comando seguente funziona per me, scarica tutte le dipendenze.

go get -u -v -f all

ci vuole molto tempo !!! scarica pacchetti che non ho mai usato nel progetto!
Yuseferi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.