Je travaille sur un nouveau projet en utilisant Go, et nous sommes tous nouveaux pour Go. Nous suivons la structure standard des répertoires go et avons tout le code sous
$ GOPATH / src / github.com / nom de la société / nom du projet
qui est aussi la racine d'un dépôt git
La disposition standard des chemins recommandée semble un peu étrange, surtout si nous travaillons sur un projet multilingue, par exemple un backend reposant sur http basé sur Go, et un frontal html / javascript. Dans ce cas, je voudrais probablement que ma structure de projet ressemble à ceci:
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
Mais est-il réellement nécessaire de placer le code dans GOPATH?
En guise d’essai, j’ai créé un petit programme dont le code source se trouvait en dehors de GOPATH. Je pouvais facilement scinder le projet en packages, afin que le main
package puisse référencer un foo
package dans un foo/
dossier à l'aide de import "./foo"
.
Autant que je sache, il y a deux choses qui me refusent:
- Un autre code ne peut pas importer ce code. Ce n'est pas un problème car nous construisons un service spécifiquement pour l'entreprise.
- Je ne peux pas utiliser
go install
pour l'installer. Ce n'est pas un problème non plus. Le pipeline de construction installe l'outil.
Cependant, il permet au serveur de compilation de ne pas avoir son espace de travail situé dans GOPATH.
Une telle approche est-elle découragée? Si oui pourquoi?
Y a-t-il d'autres effets secondaires négatifs que les deux que j'ai énumérés?
Gardez à l'esprit qu'il s'agit d'un projet privé pour une entreprise et non d'un code source ouvert public.
Détacher le projet actuel de GOPATH semble tentant, mais il faut faire attention à ne pas enfreindre les règles lorsque vous êtes sur la scène Shu
Mise à jour 2019
Vous n'avez plus besoin de stocker votre projet sous
GOPATH
.Mettez-le dans un répertoire en dehors de
GOPATH
. Puis tapez:go mod init github.com/youruser/yourproject
Vous serez prêt à partir.
la source