Comment obtenir tous les fichiers de dépendance pour un programme utilisant Golang


90

Je crée un programme en golang et après avoir terminé le code, si je veux exécuter ce code sur un autre PC ou VM, il n'obtient pas tous les fichiers du package de dépendance. comment puis-je obtenir tous les fichiers de dépendance?

go 

Réponses:


10

Vous pouvez utiliser godep savedans votre ordinateur local où vous terminez votre programme. godep save rassemble tous les fichiers de dépendance pour vous. Lorsque vous passez à un autre PC, copiez simplement le dossier Godep avec votre code et cela résoudra vos problèmes.


7
C'est peut-être évident pour certaines personnes, mais j'ai dû aller chercher ça. Il s'avère que vous devez installer le package godep ou dep sur Go. Le stie Github pour cela est ici: github.com/tools/godep
Patratacus

212

Vous pouvez exécuter à go get -d ./...partir d'un répertoire de votre projet pour télécharger toutes les dépendances go-gettable.
Ou copiez tous les srcsous-répertoires de votre GOPATH sur la machine de destination.
...est un modèle spécial, dit de descendre récursivement.


1
Si j'ai besoin d'exécuter / de modifier le code, il ne trouve pas de packages.

1
Je sais que je peux obtenir des packages en allant chercher <package> mais cela prend tellement de temps et est difficile lorsque le programme utilise de nombreux packages.

3
-t installera également les dépendances de test
honzajde

3
@AlbertoSchiabel ...est un modèle spécial. Il dit de descendre récursivement. J'ai mis à jour une réponse
RoninDev

Merci @RoninDev! Au début, j'allais modifier votre réponse ./., car après avoir essayé votre commande sur mon PC, elle était un peu bloquée (et maintenant je sais pourquoi, car la recherche récursive des fichiers go peut être assez coûteuse), mais j'ai réalisé que c'était mieux demander d'abord. Merci!
Alberto Schiabel

51

Essayer

go list -f '{{ join .Imports "\n" }}'

ou

go list -f '{{ join .Deps "\n" }}'

Le second listera toutes les sous-dépendances, le premier uniquement les packages directement importés.


22

La commande ci-dessous fonctionne pour moi, elle télécharge toutes les dépendances.

go get -u -v -f all

ça prend du temps !!! il télécharge des packages que je n'ai jamais utilisés dans le projet!
Yuseferi
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.