J'ai récemment commencé à utiliser Go Modules, l'outil de gestion des dépendances intégré à Go, et si comme moi vous étiez habitué à govendor ou dep, cela risque de vous changer un peu. D'où la nécessité de cet article aujourd'hui.
On peut techniquement utiliser Go Modules à l'intérieur du gopath
, mais il faudra alors déclarer GO111MODULES=on
dans vos variables d'environement. Cela étant dit, le but premier des modules est de ne pas
avoir à mettre son code dans le gopath
, donc évitez de faire ça.
Positionnez vous dans le dossier de votre projet Go et exécutez cette commande dans votre terminal :
go mod init nom-de-votre-module
nom-de-votre-module
peut être n'importe quel nom que vous souhaiteriez donner à votre module. Celui-ci doit être évidemment être unique pour éviter les conflits entre différents modules.
Cela génère un fichier go.mod
, auquel il va falloir ajouter les dépendances du projet grâce à la commande go get
suivante :
go get -u ./...
Cela va automatiquement ajouter au fichier go.mod
toutes les dépendances/imports actuels de votre projet et générer un fichier go.sum
qu'il est inutile de modifier.
Exécutez cette commande :
go mod vendor
Cela générera un dossier vendor and ajoutera une copie de chaque dépendance présente dans le fichier go.mod
à l'intérieur du dossier.
Exécutez cette commande :
go get -u url-du-repo
go mod vendor
Cela mettra à jour la version de l'import dans le fichier go.mod
, puis le code dans votre dossier vendor.
Et voilà pour les bases des Go Modules !