2014-04-10 14 views
6

Volevo solo confermare la mia comprensione di una tipica struttura di cartelle di progetto in un progetto Go, che segue lo Go tool conventions.convenzione struttura della struttura del progetto go-lang

Se sto scrivendo un pacchetto chiamato my-package, che utilizza un altro pacchetto esterno di terze parti - other-package. Quindi in base alle convenzioni, questa struttura di directory è corretta?

Il motivo che mi chiedo ancora una volta dopo aver letto la documentazione è perché a differenza di altre convenzioni linguistiche, l'utente e il codice di terze parti si trovano nella stessa cartella di livello superiore.

+0

Pwd della mia struttura dir: '' '/go/src/github.com/github-account-name/project-name '' ' –

+0

sì va bene finché la radice è $ GOPATH –

risposta

4

via IRC# go-dadi

macchina di un utente avrà un comune $GOPATH/src per tutti i progetti. Questo $GOPATH/src potrebbe avere più progetti (utente, pacchetti esterni, ecc.) Lì. L'utente si limita a commettere lo $GOPATH/src/mypackage nel proprio repository src.

Se si desidera avere directory separate per il proprio src e l'origine del pacchetto di terze parti, quindi anteporre un altro percorso a $GOPATH. go get scaricherà i pacchetti di terze parti su quel percorso. go-get scarica i 3 pacchetti sul primo percorso che trova nella matrice di percorsi specificata da $GOPATH.

1

Golang è così diverso da altre lingue rispetto a questo argomento, posso dire che nei miei primi giorni con Golang era difficile capire questo argomento. Vi consiglio di avere tutti i proyect su $ GOPATH/src e non avere più quel $ GOPATH.

Su GOLANG dobbiamo adattato ad esso, come sa http://golang.org/doc/code.html (organizzazione Codice)

+0

come appaiono le importazioni per i tuoi pacchetti personalizzati? per esempio hai il tuo progetto in '/ src/project1' e qualche pacchetto helper è in'/src/project1/helper'. Devi fare "importare" project1/myhelper "'? Mi sembra che sarebbe molto più pulito se la parola chiave 'project1' potesse essere omessa (e questo accadrebbe se questo fosse il nostro unico progetto nella cartella 'src' dato che dovremmo semplicemente rimuovere' project1' e spostare tutti gli altri file e la cartella uno salire di livello). Possiamo farlo comunque in qualche modo (pur avendo più progetti)? – veich

Problemi correlati