Cara mendapatkan semua file dependensi untuk program menggunakan Golang

90

Saya membuat program di golang dan setelah menyelesaikan kode, jika saya ingin menjalankan kode ini di pc atau VM lain, maka tidak mendapatkan semua file paket ketergantungan. bagaimana saya bisa mendapatkan semua file ketergantungan?


sumber

Jawaban:

10

Anda dapat menggunakannya godep savedi komputer lokal tempat Anda menyelesaikan program. godep save kumpulkan semua file dependensi untuk Anda. Ketika Anda pindah ke pc lain, cukup salin folder Godep dengan kode Anda dan itu akan menyelesaikan masalah Anda.

Animesh Kumar Paul
sumber
7
Mungkin itu jelas bagi sebagian orang, tetapi saya harus menggali lebih dalam. Ternyata Anda perlu menginstal paket godep atau dep ke Go. The Github stie untuk ini ada di sini: github.com/tools/godep
Patratacus
212

Anda dapat menjalankan go get -d ./...dari direktori proyek Anda untuk mendownload semua dependensi go-gettable.
Atau salin semua srcsubdirektori dari GOPATH Anda ke mesin tujuan.
...adalah pola khusus, diperintahkan untuk turun secara rekursif.

RoninDev
sumber
1
Jika saya perlu menjalankan / memodifikasi kode maka tidak menemukan paket.
1
Saya tahu saya bisa mendapatkan paket dengan go get <package> tetapi sangat memakan waktu dan sulit ketika program menggunakan banyak paket.
3
-t akan menginstal juga uji ketergantungan
honzajde
3
@AlbertoSchiabel ...adalah pola khusus. Ini memberitahu untuk turun secara rekursif. Saya telah memperbarui jawaban
RoninDev
Terima kasih @RoninDev! Pada awalnya saya akan mengedit jawaban Anda ke ./., karena setelah mencoba perintah Anda di pc saya agak macet (dan sekarang saya tahu mengapa, karena pencarian rekursif file go bisa sangat mahal), tetapi kemudian saya menyadari itu lebih baik untuk bertanya dulu. Terima kasih!
Alberto Schiabel
51

Mencoba

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

atau

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

Yang kedua akan mencantumkan semua subdependensi, yang pertama hanya paket yang diimpor secara langsung.

fiatjaf
sumber
22

Perintah di bawah ini berfungsi untuk saya, ia mengunduh semua dependensi.

go get -u -v -f all
infiniteLearner
sumber
itu membutuhkan waktu lama !!! itu mengunduh paket yang tidak pernah saya gunakan dalam proyek!
Yuseferi