So erhalten Sie mit Golang alle Abhängigkeitsdateien für ein Programm

88

Ich mache ein Programm in Golang und wenn ich nach Abschluss des Codes diesen Code auf einem anderen PC oder einer anderen VM ausführen möchte, werden nicht alle Dateien des Abhängigkeitspakets abgerufen. Wie kann ich alle Abhängigkeitsdateien erhalten?


quelle

Antworten:

10

Sie können godep savein Ihrem lokalen PC verwenden, wo Sie Ihr Programm vervollständigen. godep save sammelt alle Abhängigkeitsdateien für Sie. Wenn Sie zu einem anderen PC wechseln, kopieren Sie einfach den Godep-Ordner mit Ihrem Code, um Ihre Probleme zu lösen.

Animesh Kumar Paul
quelle
7
Vielleicht ist es für manche Leute offensichtlich, aber ich musste das ausgraben. Es stellt sich heraus, dass Sie das godep- oder dep-Paket installieren müssen, um loszulegen. Der Github-Stie dafür ist hier: github.com/tools/godep
Patratacus
208

Sie können go get -d ./...aus einem Verzeichnis Ihres Projekts ausführen, um alle Go-Get-Table-Abhängigkeiten herunterzuladen.
Oder kopieren Sie das gesamte srcUnterverzeichnis von Ihrem GOPATH auf den Zielcomputer.
...ist ein spezielles Muster, das rekursiv nach unten geht.

RoninDev
quelle
1
Wenn ich den Code ausführen / ändern muss, findet er keine Pakete.
1
Ich weiß, dass ich Pakete bekommen kann, indem ich <Paket> bekomme, aber es ist so zeitaufwändig und schwierig, wenn das Programm viele Pakete verwendet.
3
-t wird auch
Testabhängigkeiten
3
@ AlbertoSchiabel ...ist ein spezielles Muster. Es sagt, rekursiv zu gehen. Ich habe eine Antwort aktualisiert
RoninDev
Danke @RoninDev! Zuerst wollte ich Ihre Antwort bearbeiten ./., denn nachdem ich versucht hatte, Sie auf meinem PC zu befehlen, blieb sie irgendwie hängen (und jetzt weiß ich warum, da die rekursive Suche nach Go-Dateien ziemlich teuer sein kann), aber dann wurde mir klar, dass es besser war zuerst fragen. Vielen Dank!
Alberto Schiabel
51

Versuchen

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

oder

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

Die zweite listet alle Unterabhängigkeiten auf, die erste nur die direkt importierten Pakete.

Fiatjaf
quelle
18

Der folgende Befehl funktioniert für mich und lädt alle Abhängigkeiten herunter.

go get -u -v -f all
infiniteLearner
quelle