Heim > Backend-Entwicklung > Golang > Wie verweise ich auf Go-Module von außerhalb des GOPATH?

Wie verweise ich auf Go-Module von außerhalb des GOPATH?

Linda Hamilton
Freigeben: 2024-11-27 20:27:15
Original
600 Leute haben es durchsucht

How Do I Reference Go Modules from Outside the GOPATH?

Referenzierung von Modulen aus Nicht-GOPATH-Verzeichnissen

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"
)
Nach dem Login kopieren

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:

Modul initialisieren

Initialisieren Sie ein neues Modul mit dem Befehl „go mod init“:

go mod init github.com/username/modulename
Nach dem Login kopieren

Dadurch werden go.mod und go erstellt .sum-Dateien im aktuellen Verzeichnis.

Importanweisungen

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"
)
Nach dem Login kopieren

Dateistruktur

Unter der Annahme der folgenden Dateistruktur :

\root
└── module1
    ├── go.mod
    └── main.go

└── module2
    ├── go.mod
    └── module2.go
Nach dem Login kopieren

go.mod Dateien

Modul1:

module github.com/username/module1

require (
    github.com/username/module2 v0.0.1
)
Nach dem Login kopieren

Modul2:

module github.com/username/module2

go 1.13
Nach dem Login kopieren

main.go (Module1)

package main

import (
    "fmt"
    "github.com/username/module2"
)

func main() {
    fmt.Println(module2.Name())
}
Nach dem Login kopieren

module2.go (Modul2)

package module2

import "fmt"

func Name() string {
    return "Module 2"
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage