2013-08-28 2 views
8

Provenendo da un mondo python/django, sarebbe bello avere qualcosa come un equivalente requirements.txt per go/revel. Come posso fare questo? So che posso solo scrivere un file requirements.txt e poi fare qualcosa di simileGolang requirements.txt equivalente

cat reqiurements.txt | xargs go get 

Ma cosa succede se le mie esigenze sono anche i requisiti? Il comando precedente proverebbe a "andare a prenderli", e quindi non riuscirebbero a costruire, dato che non ho quei requisiti installati.

C'è qualcosa che mi manca?

+5

'andare GET' dovrebbe afferrare tutti i requisiti necessari per ogni pacchetto. Non dovresti aver bisogno di specificarli. Provalo e vedi se fa quello che ti serve. – Intermernet

risposta

13

Il comando go get fa esattamente ciò che ti serve: trova tutte le dipendenze e scarica e installa quelle mancanti. Focus su "all": go get attraversa davvero il grafico delle dipendenze.

Dai un'occhiata alla documentazione:

http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies

La documentazione Go è davvero pulito, corto e ben scritto. Raccomanderei sempre di dare un'occhiata alla documentazione prima di fare ipotesi basate sull'esperienza con altri strumenti o catene di strumenti.

+0

Il collegamento che hai condiviso non spiega come posso scrivere le mie dipendenze, però. Anche gli sviluppatori e gli utenti possono avere un insieme diffuso di dipendenze. – erikbwork

+0

@erikbwork Potresti spiegare quali sono le "mie dipendenze"? E cosa intendi per "diverso insieme di dipendenze" di utenti e sviluppatori? Stai pensando alle dipendenze necessarie solo dal codice di test? In tal caso: Vai a ottenere maniglie (vedi flag a riga di comando) Se parli di strumenti aggiuntivi necessari (ad esempio "go genera" si basa su yacc o m4), allora go non è per te. Vai a scaricare e creare pacchetti Go dall'origine, non è un gestore di pacchetti o uno strumento di provisioning di sistema. – Volker

+0

Non so go, quindi non posso spiegarlo in questi termini. Ma di solito il software moderno richiede alcuni pacchetti aggiuntivi, ad es. il tuo programma potrebbe analizzare i file yaml. Allora hai bisogno della libreria go-yaml nella versione 3.1.5. Se non l'hai mai scritto da qualche parte, dubito che 'go get 'lo scoprirai. La differenza tra gli sviluppatori e gli utenti è principalmente stabilità. Devs può usare la versione 3.4.5 invece di 3.1.5, perché contiene tutte le nuove funzionalità, ma potrebbe rompersi. Gli utenti ottengono 3.1.5 con l'ultima versione però, perché si rompe meno spesso. – erikbwork

2

Ho appena scoperto che i ragazzi di Kubernetes in realtà hanno creato una pagina di panoramica per loro here.

Sintesi è questo: Attualmente è stabile Glide e il nuovo giocattolo freddo si chiama dep