J'ai utilisé GOPATH
mais pour ce problème actuel auquel je suis confronté, cela n'aide pas. Je souhaite pouvoir créer des packages spécifiques à un projet:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
J'ai essayé plusieurs méthodes, mais comment puis-je package1.go
travailler dans le binary1.go
ou le binary2.go
et ainsi de suite?
Par exemple; Je veux pouvoir import "package1"
, puis être en mesure de fonctionner go build binary1.go
et tout fonctionne bien sans que l'erreur soit générée que le package ne peut pas être trouvé sur GOROOT
ou GOPATH
. La raison pour laquelle j'ai besoin de ce type de fonctionnalité est pour les projets à grande échelle; Je ne veux pas avoir à référencer plusieurs autres packages ou à les conserver dans un seul gros fichier.
.go
fichiers d'un même répertoire font partie du même package et vous n'avez pas besoin de import
fichiers dans le même package (c'est-à-dire le même répertoire). Vous avez mentionné travailler en dehors de GOPATH, qui est l'une des capacités du nouveau système de modules Go. Cette réponse couvre la structure du module, l'importation de packages locaux, l'organisation des packages dans un module, le fait d'avoir ou non plusieurs modules dans un seul référentiel, etc.
git/repo/to/my/project
chemin complet ? Je ne vois tout simplement pas la raison pour laquelle quiconque voudrait ce comportement. Que faire si vous déplacez votre projet vers un autre emplacement (image Docker par exemple), vous devez à nouveau modifier tous les chemins? Je cherche des réponses sur les raisons pour lesquelles c'est si compliqué.