2016-04-04 21 views
1

nicht finden Ich kenne Internet voll von ähnlichen Problemen, und ich habe alle vorgeschlagenen Lösungen versucht, aber kann es nicht herausfinden, mindestens 2 Tage."go build./..." kann Paket

ich wenig Go Server zu implementieren ich versucht, mit IntelliJ IDEA und es funktioniert super, kann es meinen Code bauen/laufen, aber wenn ich Terminal als Beispiel verwenden:

go build ./... 

Ich sehe etwas wie folgt aus:

OS-X-Dennis:backend denis$ go build ./... 
out/production/mypocket_backend/server.go:4:2: cannot find package "api.jwt.auth/routers" in any of: 
     /usr/local/go/src/api.jwt.auth/routers (from $GOROOT) 
     /Users/denis/Programming/Golang/src/api.jwt.auth/routers (from $GOPATH) 

OS X 10.11.2, IntelliJ IDEA 2.016,1
$ GOPATH = "Benutzer/denis/Programmierung/Golang"
$ GOROOT = "/ usr/local/go"
$ PATH = "$ PFAD: $ GOPATH/bin"
Diese Pfade sind korrekt?

Hier ist meine Arbeitsstruktur:

/Golang/ 
.bin/ 
.pkg/ 
    .darwin-amd64/ 
     .//other folders/ 
.src/ 
    .github.com/ 
    .backend/ //project's source 
      /src 
       /api.jwt.auth/ 
       //source code 
      .server.go - file with main func 
      //other files as example .gitignore 
    .//other folders// 

Hier ist mein Bildschirm der Hauptdatei und gesamte Projekt-Struktur: enter image description here

Ich sehe, dass Logs zeigen mir falschen Weg zu meinem Projekt.

now 
/Users/denis/Programming/Golang/src/api.jwt.auth/routers 
should 
/Users/denis/Programming/Golang/src/backend/src/api.jwt.auth/routers 

Ich weiß nicht, wo ich diesen Pfad korrigieren sollte.

+0

Ist der Backend-Ordner die Quelle für Ihr Projekt oder was ist das? Alle Pakete, die in Ihrem Projekt enthalten sind, müssen sich im Ordner src Ihres GOPATH befinden. Ich wette, Ihre Ordnerstruktur ist lokal anders als auf Ihrem Server – tier1

+0

Wie importieren Sie 'api.jwt.auth' Paket? Ich habe das starke Gefühl, dass Sie nicht richtig importiert haben. – nevets

+0

sollte es "importieren" sein backend/src/api.jwt.auth "', nicht 'api.jwt.auth'. – nevets

Antwort

1

Ihr GOPATH kann mehrere Verzeichnisse enthalten.

Wenn Sie wirklich wollen, um Ihre backend Verzeichnis ein Pfad von einigen Ihrer Go-Bibliotheken sein, zusätzlich zu Ihrem bestehenden Pfad von /Users/denis/Programming/Golang Sie Ihre GOPATH können festlegen: /Users/denis/Programming/Golang:/Users/denis/Programming/Golang/src/backend

Dieser Import-Anweisungen verursacht suchen Quelldateien sowohl im Verzeichnis /Users/denis/Programming/Golang/src als auch im Verzeichnis /Users/denis/Programming/Golang/src/backend/src.

Ich würde dir empfehlen, deinen api.jwt.auth Ordner zu /Users/denis/Programming/Golang/src/api.jwt.auth zu verschieben, um deine Quelle in einem Bereich zu halten, aber zwei verschiedene Verzeichnisse in deinem GOPATH, wie oben vorgeschlagen, funktionieren auch.

Um GOPATH besser zu verstehen, können Sie einfach go help gopath eingeben. Auch ein Quickstart ist here

+0

Vielen Dank, Ansatz mit 2 Pfaden in GOPATH hilft mir! Ist es eine schlechte Übung, das zu tun, sollte ich meinen Quellcode wie oben erwähnt verschieben? –

+0

Ich denke nicht, dass es schlechte Praxis ist, nur nicht üblich. –