Die Einführung von Go-Modulen in Go 1.11 führte zu Änderungen bei der Referenzierung von Modulen und Paketen aus Nicht-GOPATH-Verzeichnissen.
Alter Weg
Traditionell, Go-Module mussten sich im GOPATH befinden. Module und Pakete in diesem Verzeichnis könnten mit der folgenden Syntax importiert werden:
import ( "github.com/username/modulename/subpackage" )
New Way
Mit Go-Modulen hat sich dieser Ansatz geändert. Pakete können sich jetzt außerhalb von GOPATH befinden. So referenzieren Sie ein Paket aus einem anderen Verzeichnis:
Initialisieren Sie ein neues Modul mit dem Befehl „go mod init“:
go mod init github.com/username/modulename
Dadurch werden go.mod und go erstellt .sum-Dateien im aktuellen Verzeichnis.
Verwenden Sie Importanweisungen, um auf Pakete zu verweisen andere Verzeichnisse. Wenn sich Modul2 beispielsweise unter /root/module2 befindet und ein Paket mit dem Namen module2 enthält, lautet die Importanweisung in Modul1:
import ( "github.com/username/module2" )
Unter der Annahme der folgenden Dateistruktur :
\root └── module1 ├── go.mod └── main.go └── module2 ├── go.mod └── module2.go
Modul1:
module github.com/username/module1 require ( github.com/username/module2 v0.0.1 )
Modul2:
module github.com/username/module2 go 1.13
package main import ( "fmt" "github.com/username/module2" ) func main() { fmt.Println(module2.Name()) }
package module2 import "fmt" func Name() string { return "Module 2" }
Indem Sie diese Schritte befolgen, können Sie Module aus Nicht-GOPATH-Verzeichnissen referenzieren und so die Wiederverwendung von Code und Modularität in Go-Projekten ermöglichen.
Das obige ist der detaillierte Inhalt vonWie verweise ich auf Go-Module von außerhalb des GOPATH?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!