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?

go 

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.


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.


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.


22

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

go get -u -v -f all

itu membutuhkan waktu lama !!! itu mengunduh paket yang tidak pernah saya gunakan dalam proyek!
Yuseferi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.