Maison > développement back-end > Golang > Comment structurer correctement les modules et les projets Go dans Go 1.11 et au-delà ?

Comment structurer correctement les modules et les projets Go dans Go 1.11 et au-delà ?

Susan Sarandon
Libérer: 2024-12-15 18:25:15
original
229 Les gens l'ont consulté

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

Comment structurer les modules Golang et la structure du projet d'une nouvelle manière

Dans le système de modules mis à jour introduit dans Go 1.11, l'approche du référencement les modules de différents répertoires ont évolué. Explorons comment y parvenir d'une nouvelle manière.

Ancienne méthode

Auparavant, les modules devaient être placés dans le GOPATH pour être utilisés. En règle générale, un dossier était créé dans le GOPATH pour chaque projet. Tout ce qui se trouve dans le répertoire « src » peut être importé et exporté dans un logiciel.

Par exemple, considérons la structure de projet suivante :

github.ibm.com/
└── Alessio-Savi
    └── GoLog-Viewer
        ├── conf
        ├── database
        ├── datastructure
        ├── GinProva.go
        ├── README.md
        ├── request
        └── resources
Copier après la connexion

Pour importer le fichier datastructures.go, l'instruction suivante pourrait être utilisé :

import(
    "github.ibm.com/Alessio-Savi/GoLog-Viewer/datastructure"
)
Copier après la connexion

New Way

Avec l'introduction des modules go, le l'utilisation de GOPATH n'est plus nécessaire. Au lieu de cela, la commande 'go mod init' peut être utilisée pour initialiser un nouveau module. Cela génère deux fichiers : go.mod et go.sum.

Le fichier go.mod répertorie les bibliothèques requises et le code Go externe nécessaire au module, tandis que go.sum contient les hachages de ces bibliothèques.

Par exemple, considérons la bibliothèque GoGPUtils :

mkdir GoGPUtils
cd $_
go mod init github.com/alessiosavi/GoGPUtils
Copier après la connexion

Le fichier go.mod ressemblerait à quelque chose comme ceci :

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
)
Copier après la connexion

Pour importer la bibliothèque ahocorasick dans le module, l'instruction suivante peut être utilisée :

import (
    ahocorasick "github.com/alessiosavi/ahocorasick"
)
Copier après la connexion

Dans votre exemple de scénario, pour accéder au module2 à partir du module1, vous auriez besoin pour inclure le chemin d'accès au module2 dans le fichier go.mod du module1. Par exemple :

require (
    github.com/your-username/module2 v0.0.1
)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal