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.