Heim > Backend-Entwicklung > Golang > Wie strukturiert man Go-Module und -Projekte in Go 1.11 und höher richtig?

Wie strukturiert man Go-Module und -Projekte in Go 1.11 und höher richtig?

Susan Sarandon
Freigeben: 2024-12-15 18:25:15
Original
230 Leute haben es durchsucht

How to Properly Structure Go Modules and Projects in Go 1.11 and Beyond?

So strukturieren Sie Golang-Module und Projektstruktur auf die neue Art und Weise

Im aktualisierten Modulsystem wurde in Go 1.11 der Ansatz zur Referenzierung eingeführt Module aus verschiedenen Verzeichnissen entwickelt. Lassen Sie uns untersuchen, wie wir dies auf die neue Art erreichen können.

Alter Weg

Zuvor mussten Module zur Verwendung im GOPATH platziert werden. Normalerweise wurde für jedes Projekt ein Ordner innerhalb des GOPATH erstellt. Alles im Verzeichnis „src“ könnte in Software importiert und exportiert werden.

Betrachten Sie beispielsweise die folgende Projektstruktur:

github.ibm.com/
└── Alessio-Savi
    └── GoLog-Viewer
        ├── conf
        ├── database
        ├── datastructure
        ├── GinProva.go
        ├── README.md
        ├── request
        └── resources
Nach dem Login kopieren

Um die Datei datastructures.go zu importieren, die folgende Anweisung könnte verwendet werden:

import(
    "github.ibm.com/Alessio-Savi/GoLog-Viewer/datastructure"
)
Nach dem Login kopieren

Neuer Weg

Mit der Einführung von Go-Modulen wurde die Die Verwendung von GOPATH ist nicht mehr erforderlich. Stattdessen kann der Befehl „go mod init“ verwendet werden, um ein neues Modul zu initialisieren. Dadurch werden zwei Dateien generiert: go.mod und go.sum.

Die Datei go.mod listet die erforderlichen Bibliotheken und den externen Go-Code auf, der für das Modul benötigt wird, während go.sum Hashes dieser Bibliotheken enthält.

Betrachten Sie zum Beispiel die GoGPUtils-Bibliothek:

mkdir GoGPUtils
cd $_
go mod init github.com/alessiosavi/GoGPUtils
Nach dem Login kopieren

Die Datei go.mod würde in etwa so aussehen Dies:

module github.com/alessiosavi/GoGPUtils

go 1.13

require (
    github.com/alessiosavi/ahocorasick v0.0.3
    golang.org/x/tools v0.0.0-20191031220737-6d8f1af9ccc0 // indirect
)
Nach dem Login kopieren

Um die ahocorasick-Bibliothek innerhalb des Moduls zu importieren, kann die folgende Anweisung verwendet werden:

import (
    ahocorasick "github.com/alessiosavi/ahocorasick"
)
Nach dem Login kopieren

In Ihrem Beispielszenario benötigen Sie, um von Modul1 aus auf Modul2 zuzugreifen um den Pfad zu Modul2 in die go.mod-Datei von Modul1 aufzunehmen. Zum Beispiel:

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

Das obige ist der detaillierte Inhalt vonWie strukturiert man Go-Module und -Projekte in Go 1.11 und höher richtig?. 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