Zugriff auf lokale Pakete in Go-Modulen (Go 1.11)
Bei der Arbeit mit Go-Modulen kann der Zugriff auf lokale Pakete außerhalb Ihres Gopath eine Herausforderung sein. Betrachten Sie die folgende Projektstruktur:
/ - /platform - platform.go - main.go - go.mod
Mit diesem Setup würde das Importieren des Plattformpakets in main.go zu einem Fehler führen, der darauf hinweist, dass das Plattformmodul nicht gefunden werden kann.
Um dieses Problem zu beheben , können mehrere Ansätze verwendet werden. Eine Methode besteht darin, sicherzustellen, dass sich beide Pakete im selben Modul befinden. Fügen Sie dazu einfach Folgendes zu go.mod hinzu:
module github.com/userName/moduleName
Innerhalb von main.go können Sie dann das Plattformpaket importieren mit:
import "github.com/userName/moduleName/platform"
Allerdings, wenn die Pakete sich physisch in separaten Modulen befinden, können Sie dennoch lokale Pakete importieren, indem Sie die Ersetzungsdirektive in der go.mod-Datei des Hauptmoduls verwenden.
module github.com/userName/mainModule require "github.com/userName/otherModule" v0.0.0 replace "github.com/userName/otherModule" v0.0.0 => "local physical path to the otherModule"
In main.go ist dies möglich Importieren Sie nun das Plattformpaket aus dem otherModule-Modul:
import "github.com/userName/otherModule/platform"
Denken Sie daran, dass der Pfad in der Ersetzungsanweisung auf das Stammverzeichnis des zu ersetzenden Moduls verweisen sollte.
Für ein umfassendes Verständnis von Go-Module finden Sie in der folgenden Ressource:
Das obige ist der detaillierte Inhalt vonWie kann ich in Go-Modulen auf lokale Pakete zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!