editor php Baicao akan menjawab soalan anda tentang pemindahan dari laluan import tempatan ke laluan import jauh di Golang. Dalam pembangunan Golang, kami sering menghadapi situasi berpindah dari laluan import tempatan ke laluan import jauh, terutamanya apabila berbilang orang bekerjasama dalam pembangunan atau migrasi projek. Artikel ini akan memperincikan cara mengendalikan isu ini dengan betul untuk memastikan kod anda berjalan lancar. Mari lihat!
Saya baru mula memecahkan aplikasi saya ke dalam repositori yang berbeza. Seperti kebanyakan orang, saya menghadapi masalah berurusan dengan Go dan menukar repositori. Tetapi terdapat banyak soalan dan jawapan untuk soalan-soalan ini, jadi saya tidak akan bertanya kepada mereka di sini.
Sebaliknya, saya ada soalan mudah tetapi saya tidak faham. Semua modul saya, kerana ia adalah aplikasi yang besar, hanyalah rujukan tempatan. Contohnya core/validate
dsb.
Pindahkan kandungan ke dalam berbilang repositori. Nampaknya menimbulkan masalah dengan rujukan tempatan, jadi saya menukar laluan ke laluan jauh, mis. gitlab.com/<group>/core.git/validate</group>
gitlab.com/<group>/core.git/config</group>
merujuk kepada ia tidak bermakna gitlab.com/ <group> kini menunjuk ke sesuatu dalam <code>pck/mod/gitlab.com/...
atau ke pelayan jauh, atau di mana-mana selain satu sama lain, sama seperti apabila mereka hanya mempunyai laluan relatif seperti gitlab.com/<group>/core.git/config</group>
引用了 gitlab.com/<group>/core.git/validate</group>
并不意味着 gitlab.com/ <group>/core.git/config</group>
现在指向 pck/mod/gitlab.com/...
中的某些内容或指向远程服务器,或者指向彼此以外的任何地方,就像它们只有像 core/validate
? Apabila saya menukarnya ia kelihatan seperti ini kerana IDE saya (GoLand) menunjukkan rujukan tidak dijumpai.
Saya belum cuba lakukan go mod init
并从头开始重建 mod,但是 go mod tidy
不起作用,我不知道我是否也必须在 go.work
Menukar laluan jauh berfungsi dengan baik, tetapi sekarang saya tidak dapat mencari import yang ditunjukkan dalam IDE.
Nampaknya jika anda menggunakan rujukan jauh untuk membuat perubahan yang anda buat dalam kod anda semasa membangunkan, anda perlu menolak perubahan supaya di situlah titik rujukan dan mungkin lakukan go get
Tukar ke tempat laluan jauh setempat dirujuk, yang mana nampaknya berlaku Ia adalah cara yang buruk untuk berkembang, jadi ia tidak boleh betul.
Jadi, bagaimanakah laluan terpencil ini berfungsi dengan pembangunan, apakah yang saya hilang?
Terdapat beberapa konsep yang boleh menyebabkan kekeliruan.
Modul ialah koleksi pakej. Anda boleh menamakan modul anda "mymodule" dan kemudian semua pakej di bawah "mymodule" akan dinamakan "mymodule/pkg1", "mymodule/pkg2/otherpkg", dsb.
Kemudian anda mempunyai laluan import untuk pakej anda. Laluan import menunjukkan lokasi pakej. Sebagai contoh, jika kod sumber anda berada dalam "mymodule/pkg1" dan anda mengimport "mymodule/pkg2", maka ini adalah rujukan kepada pakej di bawah modul yang sama.
Sekarang bayangkan anda mempunyai modul lain yang dipanggil "othermodule" pada "github.com/mygroup/othermodule". Anda mengimport pakej dalam modul ini sebagai "github.com/mygroup/othermodule/pkg1". Jika "othermodule/pkg1" merujuk kepada "othermodule/pkg2", maka ia masih mengimport "othermodule/pkg2" kerana ia berada dalam modul yang sama. Tetapi dari "mymodule/pkg1" anda mengimportnya sebagai "github.com/mygroup/othermodule/pkg2".
Sistem modul Go menggunakan rujukan versi daripada modul lain. Apabila anda menyertakan pakej daripada modul, versi khusus modul ditambahkan pada go.mod. Jika anda menolak perubahan baharu pada modul, anda mesti mengemas kini rujukan untuk memasukkan perubahan tersebut. Itulah sebabnya adalah lebih baik untuk tidak membahagikan projek yang digandingkan rapat kepada berbilang modul.
Jika anda ingin membangunkan berbilang modul bersama-sama, gunakan arahan "ganti" untuk menggunakan salinan tempatan modul dan bukannya menunjuk kepada versi pada repositori.
Atas ialah kandungan terperinci Golang, masalah berpindah dari laluan import tempatan ke laluan import jauh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!