Ich habe verwendet, GOPATH
aber für dieses aktuelle Problem, mit dem ich konfrontiert bin, hilft es nicht. Ich möchte in der Lage sein, projektspezifische Pakete zu erstellen:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
Ich habe mehrere Möglichkeiten ausprobiert, aber wie komme ich package1.go
zur Arbeit in der binary1.go
oder der binary2.go
und so weiter?
Beispielsweise; Ich möchte in der Lage sein import "package1"
und dann laufen können go build binary1.go
und alles funktioniert einwandfrei, ohne dass der Fehler ausgelöst wird, dass das Paket nicht auf GOROOT
oder gefunden werden kann GOPATH
. Der Grund, warum ich diese Art von Funktionalität benötige, liegt in großen Projekten. Ich möchte nicht auf mehrere andere Pakete verweisen oder sie in einer großen Datei aufbewahren müssen.
.go
Dateien in einem einzelnen Verzeichnis sind Teil desselben Pakets, und Sie müssen keine import
Dateien im selben Paket (dh im selben Verzeichnis) speichern. Sie haben erwähnt, dass Sie außerhalb von GOPATH arbeiten, einer der Funktionen des neuen Go-Modulsystems. Diese Antwort behandelt die Modulstruktur, das Importieren lokaler Pakete, das Anordnen von Paketen innerhalb eines Moduls, ob mehrere Module in einem Repository vorhanden sein sollen oder nicht usw.
git/repo/to/my/project
Pfad angeben ? Ich sehe nur nicht den Grund, warum jemand dieses Verhalten wollen würde. Was passiert, wenn Sie Ihr Projekt an einen anderen Ort verschieben (z. B. Docker-Image) und alle Pfade erneut ändern müssen? Ich suche nach Antworten, warum dies so kompliziert ist.