Allez le résumé de la gestion des dépendances :
-
vgo
si votre version de go est : x >= go 1.11
-
dep
o vendor
si votre version de go est : go 1.6 >= x < go 1.11
- Manuellement si votre version de go est :
x < go 1.6
Edit 3 : Go 1.11 a une fonctionnalité vgo
qui remplacer dep
.
Pour utiliser vgo
voir Modules documentation. TLDR ci-dessous :
export GO111MODULE=on
go mod init
go mod vendor # if you have vendor/ folder, will automatically integrate
go build
Cette méthode crée un fichier appelé go.mod
dans votre répertoire de projets. Vous pouvez ensuite construire votre projet avec go build
. Si GO111MODULE=auto
est définie, alors votre projet ne peut pas être dans $GOPATH
.
Edit 2 : La méthode de vente est toujours valable et fonctionne sans problème. vendor
est en grande partie un processus manuel, pour cette raison dep
y vgo
ont été créés.
Edit 1 : Bien que mon ancienne méthode fonctionne, ce n'est plus la manière "correcte" de le faire. Vous devriez utiliser vendeur capacités, vgo
o dep
(pour l'instant) qui sont activés par défaut dans Go 1.6 ; voir . En fait, vous ajoutez vos paquets "externes" ou "dépendants" à l'intérieur d'un fichier de type vendor
lors de la compilation, le compilateur utilisera ces paquets en premier.
Trouvé. J'ai pu importer le paquet local avec GOPATH
en créant un sous-dossier de package1
et ensuite l'importer avec import "./package1"
en binary1.go
y binary2.go
scripts comme ceci :
binary1.go
...
import (
"./package1"
)
...
Ma structure de répertoire actuelle ressemble donc à ceci :
myproject/
├── binary1.go
├── binary2.go
├── package1/
│ └── package1.go
└── package2.go
Je dois également noter que les chemins relatifs (au moins dans go 1.5) fonctionnent également ; par exemple :
import "../packageX"