Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pergi modul dengan berbilang laluan

Pergi modul dengan berbilang laluan

WBOY
WBOYke hadapan
2024-02-10 11:30:10430semak imbas

具有多个路径的 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

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>"

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"
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/"
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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam