web-dev-qa-db-fra.com

Comment migrer des modules Dep vers Go

J'utilise actuellement Dep et je voudrais commencer à utiliser les modules Go.

Comment migrer?

25
Nicholas

La migration des modules Dep to Go est très simple.

  1. Courir go version et assurez-vous d'utiliser Go version 1.11 ou ultérieure.
  2. Déplacez votre code en dehors de GOPATH ou définissez export GO111MODULE=on.
  3. go mod init [module path]: Cela importera les dépendances de Gopkg.lock.
  4. go mod tidy: Cela supprimera les importations inutiles et en ajoutera des indirectes.
  5. (Facultatif) Supprimez votre dossier fournisseur (rm -rf vendor/ ou passer à la corbeille)
  6. go build: Faites un build de test pour voir si cela fonctionne.
  7. 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:

  1. Courir go mod vendor pour copier vos dépendances dans le dossier du fournisseur.
  2. Courir go build -mod=vendor s'assurer go build utilise votre dossier fournisseur.
38
Nicholas

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:

  1. Accédez à la racine de l'arborescence source du module en dehors de GOPATH:
$ export GO111MODULE=on                         # manually active module mode
$ cd $GOPATH/src/<project path>                 # e.g., cd $GOPATH/src/you/hello
  1. Créez la définition de module initiale et écrivez-la dans le fichier go.mod:
$ 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.

  1. Construisez le module. Lorsqu'il est exécuté à partir du répertoire racine d'un module, le modèle./... correspond à tous les packages du module actuel. go build ajoutera automatiquement les dépendances manquantes ou non converties selon les besoins pour satisfaire les importations pour cette invocation de build particulière:
$ go build ./...
  1. Testez le module tel qu'il est configuré pour vous assurer qu'il fonctionne avec les versions sélectionnées:
$ go test ./...
  1. (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
1
aitchkhan

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.

0
prashant