Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menyelesaikan Ketergantungan Modul Go yang Bercanggah Apabila Tahap Atas dan Sub-Modul Diimport sebagai Versi Berbeza?
Kebergantungan modul Go kadangkala boleh menyebabkan konflik apabila peringkat atasan modul dan salah satu sub-modulnya diimport secara berasingan sebagai versi yang berbeza. Mari kita teroka isu ini dan cari penyelesaian.
Ikhtisar Masalah
Apabila anda mempunyai dua kebergantungan dalam projek, seperti yang ditunjukkan dalam fail go.mod di bawah, pergi arahan muat turun mod boleh mengakibatkan muat turun versi berbeza submodul kongsi.
module github.com/test-org/test-repo go 1.12 require ( github.com/foo/bar v1.0.0 github.com/raz/mataz v1.0.0 )
Ini boleh membawa kepada ralat import samar-samar apabila mengimport submodul dalam kod anda, kerana alat go tidak pasti versi mana yang hendak dipilih.
Penyelesaian
Isu timbul apabila salah satu kebergantungan merujuk versi pra-go-modul sub-modul. Import kotak hitam keseluruhan repositori ini bercanggah dengan rujukan modul kepada sub-modul.
Untuk menyelesaikan konflik ini, anda boleh memaksa rujukan kepada pergantungan dikongsi untuk menggunakan versi yang didayakan go-module. Tambahkan baris berikut pada fail go.mod anda:
replace ( github.com/shared/dependency => github.com/shared/dependency v1.2.0 )
Pastikan versi yang dinyatakan (v1.2.0 dalam contoh ini) didayakan go-module (mempunyai fail go.mod).
Penyelesaian ini berfungsi kerana ia memastikan bahawa semua rujukan kepada kebergantungan dikongsi menggunakan versi modul, menghapuskan konflik import kotak hitam yang membawa kepada ralat import yang tidak jelas.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ketergantungan Modul Go yang Bercanggah Apabila Tahap Atas dan Sub-Modul Diimport sebagai Versi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!