Maison > développement back-end > Golang > Comment prendre en charge plusieurs modules Go Mod dans un seul référentiel

Comment prendre en charge plusieurs modules Go Mod dans un seul référentiel

藏色散人
Libérer: 2021-07-13 14:33:44
avant
3463 Les gens l'ont consulté

Contexte

J'écris Go récemment. Il existe un projet avec plusieurs modules et les versions sont publiées. dans Together, pour que d'autres projets puissent utiliser ces modules, il est nécessaire de mettre en œuvre la sortie de plusieurs modules dans un seul entrepôt.

Structure de l'entrepôt

La structure de l'entrepôt est la suivante :

.├── README.md
├── a
│   ├── a.go
│   └── go.mod
└── b
    ├── b.go
    └── go.mod
Copier après la connexion

a/go.mod est généré à l'aide la commande suivante :

go mod init github.com/robberphex/go-test-multi-module/a
Copier après la connexion

Version release

Comme il s'agit d'un multi-module, différentes balises sont utilisées. Les noms de balises sont unifiés comme <模块名>/<版本号>.

Par exemple, les balises actuelles sont :

$ git tag
a/v1.0.0
b/v1.0.0
b/v1.0.1
Copier après la connexion

Utilisation par l'utilisateur

Les utilisateurs doivent uniquement Vous devez exécuter la commande comme un module normal :

$ go get github.com/robberphex/go-test-multi-module/b
go: downloading github.com/robberphex/go-test-multi-module/b v1.0.1
go: downloading github.com/robberphex/go-test-multi-module v0.0.0-20210420014022-d2c7262e89eb
$ go get github.com/robberphex/go-test-multi-module/a
go: downloading github.com/robberphex/go-test-multi-module/a v1.0.0
Copier après la connexion

Expérience de développement VSCode

Mais dans le cas de plusieurs modules Ensuite, utilisez VSCode pour ouvrir l'entrepôt (répertoire racine), VSCode signalera une erreur et la complétion automatique impliquant des packages tiers ne fonctionnera pas :


J'ai vérifié les informations en fonction des invites et j'ai découvert que golps ne prend désormais en charge que les entrepôts multi-modules à titre expérimental. Vous devez activer manuellement ce commutateur :

"gopls": {
    "build.experimentalWorkspaceModule": true}
Copier après la connexion

De cette façon, les projets multi-modules peuvent être développés en douceur.

P.S. Il y a aussi un interrupteurui.completion.experimentalPostfixCompletions qui est également très utile. Vous pouvez l'activer et voir l'effet est le suivant :

Pour plus d'articles techniques liés au Golang, veuillez visiter golangColonne tutoriel !

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!

Étiquettes associées:
source:learnku.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal