Pergi modul dengan berbilang laluan

WBOY
Lepaskan: 2024-02-10 11:30:10
ke hadapan
434 orang telah melayarinya

具有多个路径的 Go 模块

Editor PHP Zimo memperkenalkan: Baru-baru ini, alat pengurusan modul dalam bahasa Go telah membawa masuk modul berbilang fungsi baharu. Pengenalan ciri ini membolehkan pembangun menentukan laluan modul dengan lebih fleksibel apabila menggunakan modul Go. Pada masa lalu, pembangun hanya boleh memasang modul dalam laluan tetap, mengakibatkan kebergantungan modul yang kompleks. Kini, kemunculan modul berbilang laluan menyediakan pembangun dengan lebih banyak pilihan, menjadikan pengurusan modul lebih mudah dan fleksibel. Pembangun boleh memasang modul dalam laluan berbeza mengikut keperluan projek, dengan itu mencapai pengurusan modul dan kawalan versi yang lebih baik. Pengenalan ciri baharu ini akan meningkatkan lagi kecekapan pembangunan dan kemudahan bahasa Go.

Kandungan soalan

Saya mempunyai modul go yang dicerminkan ke berbilang lokasi. Satu dalam gitlab dan satu lagi dalam bitbucket. Apabila cuba mendasarkannya pada lokasi gitlab baharu saya mendapat:

go: gitlab.com/company/[email protected]: parsing go.mod:
module declares its path as: bitbucket.org/company/core
but was required as: gitlab.com/company/core
Salin selepas log masuk

Saya tahu mengapa ini berlaku, tetapi bagaimanakah caranya saya mentakrifkan go.mod saya sebagai "atau"?

Penyelesaian

Jawapan ringkas: Anda tidak boleh.

Tetapi semua mungkin tidak hilang...

Jika anda mempunyai kod di lokasi yang dirujuk oleh laluan modul dan di lokasi lain yang atas sebab tertentu anda lebih suka memuat turun daripadanya, anda boleh mengkonfigurasi git alias untuk mengubah hala rujukan dari laluan modul yang ditentukan ke sumber muat turun yang dikehendaki:

git config --global --add url."https://<download path>".insteadof "https://<module path>"
Salin selepas log masuk

Alias ​​tidak perlu sepenuhnya diganti. Anda boleh menggunakan alias untuk menggantikan awalan pada mana-mana laluan modul. Jadi jika anda mengehoskan beberapa modul pada pelayan modul ini (selagi nama repositori adalah sama). Sebagai contoh, kami menggunakannya untuk mencipta laluan modul "mesra" untuk modul yang dihoskan dalam repositori git pelayan azuredevops tempatan, seperti:

git config --global --add url."https://tfs.myorg.com/myorgcollection/_git".insteadof "https://tfs.myorg.com"
Salin selepas log masuk
Modul kami kemudiannya akan dapat mengenal pasti dirinya sebagai

(

akhiran diperlukan untuk ciri azure devops

) tfs.myorg.com/somemodule.git ,但是当 go get 尝试获取此 git 时,它将在 https://tfs.myorg.com/myorgcollection/_git/somemodule 中查找它.git

Sejujurnya, saya tidak mencuba ini pada pelayan yang sama sekali berbeza hanya untuk "menulis semula" laluan pada pelayan yang sama, tetapi pada dasarnya ia sepatutnya berfungsi. Jadi dalam kes anda:

git config --global --add url."https://gitlab.com/company/".insteadof "https://bitbucket.org/company/"
Salin selepas log masuk
Kerana ini berlaku untuk .git .

iaitu apabila anda

anda perlu memetik laluan

modul yang diisytiharkan oleh

: git 级别的事物,就 go 而言,它仍然从 bitbucket.org 获取,即使 git 将在后台访问 gitlab.com

go get bitbucket.org/company/core
Salin selepas log masuk
Satu-satunya kelemahan untuk melakukan ini ialah anda perlu mengkonfigurasi alias pada mana-mana/semua stesen kerja (dan membina mesin) yang perlu diperoleh dari mana-mana selain daripada lokasi yang diisytiharkan dalam laluan modul

. go get

Atas ialah kandungan terperinci Pergi modul dengan berbilang laluan. 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!