Golang, masalah berpindah dari laluan import tempatan ke laluan import jauh

王林
Lepaskan: 2024-02-09 08:27:38
ke hadapan
595 orang telah melayarinya

Golang, masalah berpindah dari laluan import tempatan ke laluan import jauh

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!

Kandungan soalan

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/validatedsb.

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>

Walau bagaimanapun, ini akan membawa masalah Jika 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?

Penyelesaian

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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!