J'utilise actuellement Dep et je voudrais commencer à utiliser les modules Go.
Comment migrer?
La migration des modules Dep to Go est très simple.
go version
et assurez-vous d'utiliser Go version 1.11 ou ultérieure.export GO111MODULE=on
.go mod init [module path]
: Cela importera les dépendances de Gopkg.lock.go mod tidy
: Cela supprimera les importations inutiles et en ajoutera des indirectes.rm -rf vendor/
ou passer à la corbeille)go build
: Faites un build de test pour voir si cela fonctionne.rm -f Gopkg.lock Gopkg.toml
: Supprimer les fichiers obsolètes utilisés pour Dep.Go a importé mes dépendances de Dep en lisant le Gopkg.lock
fichier et a également créé un go.mod
fichier.
Si vous souhaitez conserver votre dossier fournisseur:
go mod vendor
pour copier vos dépendances dans le dossier du fournisseur.go build -mod=vendor
s'assurer go build
utilise votre dossier fournisseur.Pour ajouter aux réponses de @Nicholas:
Ici est issu de la documentation officielle de Golang:
Pour créer un go.mod pour un projet existant:
$ export GO111MODULE=on # manually active module mode
$ cd $GOPATH/src/<project path> # e.g., cd $GOPATH/src/you/hello
$ go mod init
Cette étape convertit à partir de n'importe quel fichier dep Gopkg.lock existant ou à partir de l'un des neuf autres formats de dépendance pris en charge , en ajoutant des instructions require pour correspondre à la configuration existante.
$ go build ./...
$ go test ./...
(Facultatif) Exécutez les tests de votre module ainsi que les tests de toutes les dépendances directes et indirectes pour vérifier les incompatibilités:
$ go test all
Une autre façon de passer aux modules.
Supprimez Gopkg.toml et Gopkg.lock
rm Gopkg.*
Initialiser les modules Go
GO111MODULE=on go mod init
Exécutez go mod tidy pour extraire tous les modules indirects et supprimer les modules inutilisés
GO111MODULE=on go mod tidy
Exécutez la construction pour vous assurer que tout fonctionne bien
go build
Astuce au cas où vous rencontrez quelques modules introuvables, puis mettez à jour manuellement la balise modules dans le fichier go.mod.