Golang kullanarak bir program için tüm bağımlılık dosyaları nasıl elde edilir


91

Golang'da bir program yapıyorum ve kodu tamamladıktan sonra bu kodu başka bir bilgisayar veya sanal makinede çalıştırmak istersem, tüm bağımlılık paketi dosyalarını almıyor. tüm bağımlılık dosyalarını nasıl alabilirim?

go 

Yanıtlar:


9

godep saveProgramınızı tamamladığınız yerel bilgisayarınızda kullanabilirsiniz . godep save sizin için tüm bağımlılık dosyalarını toplar. Başka bir bilgisayara geçtiğinizde, kodunuzla birlikte Godep klasörünü kopyalamanız yeterlidir ve problemlerinizi çözecektir.


7
Belki bazı insanlar için açıktır, ama bunu araştırmam gerekiyordu. Go için godep veya dep paketini yüklemeniz gerektiği ortaya çıktı. Bunun için Github stie burada: github.com/tools/godep
Patratacus

218

go get -d ./...Tüm go-gettable bağımlılıklarını indirmek için projenizin bir dizininden çalıştırabilirsiniz .
Veya tüm srcalt dizini GOPATH'ınızdan hedef makineye kopyalayın .
...özel bir kalıptır, yinelemeli olarak aşağı inmeyi söyler.


1
Kodu çalıştırmam / değiştirmem gerekirse, paketleri bulamıyor.

1
Paketleri gidip <package> ile alabileceğimi biliyorum, ancak program çok sayıda paket kullandığında bu çok zaman alıcı ve zordur.

4
-t ayrıca bağımlılıkları test edecek
honzajde

3
@AlbertoSchiabel ...özel bir kalıptır. Yinelemeli olarak aşağı inmeyi söyler. Bir cevabı güncelledim
RoninDev

Teşekkürler @RoninDev! İlk başta yanıtınızı düzenleyecektim ./., çünkü bilgisayarımda size komut vermeyi denedikten sonra biraz sıkıştı (ve şimdi nedenini biliyorum, çünkü go dosyalarının yinelemeli araması oldukça pahalı olabilir), ama sonra bunun daha iyi olduğunu fark ettim ilk sormak için. Teşekkürler!
Alberto Schiabel

52

Deneyin

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

veya

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

İkincisi, tüm alt bağımlılıkları, ilki yalnızca doğrudan içe aktarılan paketleri listeler.


24

Aşağıdaki komut benim için çalışıyor, tüm bağımlılıkları indiriyor.

go get -u -v -f all

Bu uzun zaman alır !!! projede hiç kullanmadığım paketleri indiriyor!
Yuseferi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.