Maison >développement back-end >Golang >Comment prendre en charge plusieurs modules Go Mod dans un seul référentiel
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.
La structure de l'entrepôt est la suivante :
.├── README.md ├── a │ ├── a.go │ └── go.mod └── b ├── b.go └── go.mod
oùa/go.mod
est généré à l'aide la commande suivante :
go mod init github.com/robberphex/go-test-multi-module/a
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
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
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}
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!