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?

go 

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.


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.


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.


22

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

go get -u -v -f all

to zajmuje dużo czasu !!! pobiera pakiety, których nigdy nie użyłem w projekcie!
Yuseferi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.