2015-05-18 14 views
6

Proveniente da uno sfondo JVM Mi piacerebbe sapere come distribuire un progetto golang alla produzione. Esiste un equivalente di un file JAR?Come sono impacchettati i progetti golang per la distribuzione?

Esiste un gestore di pacchetti autonomo che può essere installato sul server e un file manifest di dipendenza che può essere eseguito per ridurre tutte le dipendenze sul server. In particolare, non voglio dover costruire il progetto sul server perché non possiamo avere compilatori, ecc. Sulle scatole di produzione.

grazie.

+2

Basta copiare il file binario. – inf

risposta

6

Si esegue go install <pkg>, il file binario verrà inserito in $GOPATH/bin. È possibile copiare quel file binario su un altro computer con lo stesso sistema operativo e architettura.

È inoltre possibile modificare la directory che include il pacchetto main ed eseguire semplicemente go build. Il file binario verrà inserito nella directory corrente.

Non ci sono dipendenze in un binario di Go da tracciare. È collegato staticamente. (Alcune librerie di sistema possono essere collegate dinamicamente, ma se si utilizza lo stesso sistema operativo, questo non dovrebbe essere un problema.)

+0

Sì, è così semplice. Se la tua app deve essere implementata con file di asset aggiuntivi, file di configurazione ecc. Ecc., Potresti semplicemente metterli tutti in un tarball con il binario. In alternativa, alcune risorse potrebbero essere incorporate nel file binario con uno strumento come https://github.com/jteeuwen/go-bindata. –

+0

@RobNapier Che cosa succede se la macchina da distribuire ha una configurazione diversa (OS) – Itachi

+1

In questo caso è necessario eseguire una compilazione incrociata. http://dave.cheney.net/2015/03/03/cross-compilation-just-got-a-whole-lot-better-in-go-1-5 –

Problemi correlati