Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Verwendung von Go-Modulen
Einführung in Go-Module
Module ist eine neue experimentelle Funktion in Go 1.11, die auf Basis von vgo weiterentwickelt wurde und ein neues Paketverwaltungstool ist.
Paketverwaltungstools vor Go 1.11 basierten alle auf PATH oder Herstellerverzeichnissen, was das Problem der Abhängigkeit von verschiedenen Versionen nicht sehr gut lösen konnte. Modules ist eine neue Paketverwaltungsmethode außerhalb von GOPATH. Durch die Verwendung von Modulen ist es völlig unabhängig von GOPATH.
Hinweis: Go Modules erfordert Go 1.11 oder höher
Nutzungsanleitung
Beispiel
1. Erstellen Sie ein Verzeichnis außerhalb von GOPATH
$ mkdir -p /tmp/scratchpad/hello $ cd /tmp/scratchpad/hello
2. Modul initialisieren
$ go mod init github.com/you/hello go: creating new go.mod: module github.com/you/hello
3. Hallo.go bearbeiten
package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) }
4. Kompilieren und ausführen
$ go build $ ./hello Hello, world.
Hinweis: go build lädt automatisch Abhängigkeitspakete herunter, während golang Pakete wie Da .org/x/... die Firewall umgehen muss, können Sie die Umgebungsvariable GOPROXY hinzufügen, um den Proxy festzulegen:
export GOPROXY=https://goproxy.io
Zu diesem Zeitpunkt wird die Datei go.mod automatisch aktualisiert und enthält die vom Projekt benötigten Abhängigkeiten und die entsprechende Versionsnummer
$ cat go.mod module github.com/you/hello require rsc.io/quote v1.5.2
Zusätzlich zu go.mod verwaltet go auch eine Datei namens go.sum, die den erwarteten Hashwert für eine bestimmte Modulversion enthält:
cat go.sum golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= rsc.io/quote v1.5.2 h1:w5fcysjrx7yqtD/aO+QwRjYZOKnaM9Uh2b40tElTs3Y= rsc.io/quote v1.5.2/go.mod h1:LzX7hefJvL54yjefDEDHNONDjII0t9xZLPXsUe+TKr0= rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
go verwendet die Datei go.sum, um sicherzustellen, dass zukünftige Downloads dieser Module mit dem ersten Download identisch sind, sodass keine unerwarteten Änderungen an den Modulen auftreten, von denen Ihr Projekt abhängt.
Sowohl go.mod als auch go.sum sollten in die Versionskontrolle eingecheckt werden.
Täglicher Arbeitsablauf
Ein typischer täglicher Arbeitsablauf könnte wie folgt aussehen:
Importanweisungen im .go-Code nach Bedarf hinzufügen
Standard Befehle (z. B. go build oder go test) fügen bei Bedarf automatisch neue Abhängigkeiten hinzu (aktualisieren Sie go.mod und laden Sie neue Abhängigkeiten herunter)
Wenn eine bestimmte Version erforderlich ist, können Sie mit go get eine bestimmte Version angeben Zum Beispiel go get foo@v1.2.3, go get foo@master, go get foo@e3702bed2 oder direkt die Datei go.mod bearbeiten
Allgemeine Befehle:
go list -m all Alle direkten und indirekten Abhängigkeiten im Projekt anzeigen
Go Mod Tidy Löschen Sie ungenutzte Abhängigkeiten und fügen Sie andere erforderliche Abhängigkeiten hinzu
Go Mod Vendor Abhängigkeiten in das Anbieterverzeichnis kopieren
Weitere Informationen zu Go Wenn Sie über Sprachkenntnisse verfügen, beachten Sie bitte die Spalte Go Language Tutorial auf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von Go-Modulen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!