Jak zdobyć wszystkie pliki zależności dla programu używającego Golanga

90

Robię program w golangu i po ukończeniu kodu, jeśli chcę uruchomić ten kod na innym komputerze lub maszynie wirtualnej, to nie otrzymuje wszystkich plików pakietu zależności. jak mogę uzyskać wszystkie pliki zależności?


źródło

Odpowiedzi:

10

Możesz użyć godep savena swoim lokalnym komputerze, na którym ukończysz program. godep save zebrać wszystkie pliki zależności. Kiedy przejdziesz na inny komputer, po prostu skopiuj folder Godep ze swoim kodem, a to rozwiąże Twoje problemy.

Animesh Kumar Paul
źródło
7
Może dla niektórych jest to oczywiste, ale musiałem to wykopać. Okazuje się, że musisz zainstalować pakiet godep lub dep, aby przejść. Strona Github jest tutaj: github.com/tools/godep
Patratacus
212

Możesz uruchomić go get -d ./...z katalogu swojego projektu, aby pobrać wszystkie zależności go-gettable.
Lub skopiuj wszystkie srcpodkatalogi z GOPATH do komputera docelowego.
...jest specjalnym wzorcem, nakazuje zejść rekurencyjnie.

RoninDev
źródło
1
Jeśli muszę uruchomić / zmodyfikować kod, nie znajduje pakietów.
1
Wiem, że mogę pobrać pakiety, pobierając <package>, ale jest to bardzo czasochłonne i trudne, gdy program używa wielu pakietów.
3
-t zainstaluje również zależności testowe
honzajde
3
@AlbertoSchiabel ...to specjalny wzór. Mówi, aby zejść rekurencyjnie. Zaktualizowałem odpowiedź
RoninDev
Dzięki @RoninDev! Na początku miałem zamiar edytować twoją odpowiedź ./., ponieważ po wypróbowaniu polecenia na moim komputerze trochę się zawiesiło (i teraz wiem dlaczego, ponieważ rekursywne wyszukiwanie plików go może być dość drogie), ale potem zdałem sobie sprawę, że było lepiej najpierw zapytać. Dzięki!
Alberto Schiabel
51

Próbować

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

lub

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

Druga zawiera listę wszystkich zależności, pierwsza zawiera tylko pakiety zaimportowane bezpośrednio.

fiatjaf
źródło
22

Poniższe polecenie działa u mnie, pobiera wszystkie zależności.

go get -u -v -f all
nieskończonyLearner
źródło
to zajmuje dużo czasu !!! pobiera pakiety, których nigdy nie użyłem w projekcie!
Yuseferi