Ho usato GOPATH
ma per questo problema attuale sto affrontando non aiuta. Voglio essere in grado di creare pacchetti specifici per un progetto:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
Ho provato diversi modi, ma come posso package1.go
lavorare in binary1.go
o il binary2.go
e così via?
Per esempio; Voglio essere in grado di import "package1"
e quindi essere in grado di funzionare go build binary1.go
e tutto funziona bene senza che venga generato l'errore su cui non è possibile trovare il pacchetto GOROOT
o GOPATH
. Il motivo per cui ho bisogno di questo tipo di funzionalità è per progetti su larga scala; Non voglio fare riferimento a più altri pacchetti o tenerli in un unico file di grandi dimensioni.
.go
file in una singola directory fanno parte dello stesso pacchetto e non è necessario import
file nello stesso pacchetto (ovvero la stessa directory). Hai citato di lavorare al di fuori di GOPATH, che è una delle funzionalità del nuovo sistema di moduli Go. Questa risposta copre la struttura del modulo, l'importazione di pacchetti locali, l'organizzazione di pacchetti all'interno di un modulo, se disporre o meno di più moduli in un singolo repository, ecc.
git/repo/to/my/project
percorso? Semplicemente non vedo il motivo per cui qualcuno vorrebbe questo comportamento. Cosa succede se si sposta il progetto in un'altra posizione (ad es. Immagine Docker), è necessario modificare nuovamente tutti i percorsi? Sto cercando risposte perché questo è così complicato.