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?

go 

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.


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.


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.


18

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

go get -u -v -f all
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.