Maison > développement back-end > Golang > Aller au module avec plusieurs chemins

Aller au module avec plusieurs chemins

WBOY
Libérer: 2024-02-10 11:30:10
avant
476 Les gens l'ont consulté

具有多个路径的 Go 模块

L'éditeur PHP Zimo a présenté : Récemment, l'outil de gestion de modules dans le langage Go a inauguré un nouveau module fonction-multipath. L'introduction de cette fonctionnalité permet aux développeurs de spécifier de manière plus flexible le chemin du module lors de l'utilisation des modules Go. Dans le passé, les développeurs ne pouvaient installer les modules que dans des chemins fixes, ce qui entraînait des dépendances de modules plus complexes. Aujourd'hui, l'émergence des modules multi-chemins offre aux développeurs davantage de choix, rendant la gestion des modules plus pratique et plus flexible. Les développeurs peuvent installer des modules dans différents chemins en fonction des besoins du projet, obtenant ainsi une meilleure gestion des modules et un meilleur contrôle des versions. L'introduction de cette nouvelle fonctionnalité améliorera encore l'efficacité du développement et la commodité du langage Go.

Contenu de la question

J'ai un module Go qui est mis en miroir sur plusieurs emplacements. L’un est dans gitlab et l’autre dans bitbucket. Lorsque j'essaie de le baser sur le nouvel emplacement gitlab, j'obtiens :

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
Copier après la connexion

Je sais pourquoi cela se produit, mais comment définir mon go.mod comme « ou » ?

Solution

Réponse courte : Vous ne pouvez pas.

Mais tout n'est peut-être pas perdu...

Si vous avez du code à l'emplacement référencé par le chemin du module et dans un emplacement différent à partir duquel, pour une raison quelconque, vous préférez télécharger, vous pouvez configurer git alias pour rediriger la référence du chemin du module spécifié vers la source de téléchargement souhaitée :

git config --global --add url."https://<download path>".insteadof "https://<module path>"
Copier après la connexion

Les alias ne doivent pas être complètement remplacés. Vous pouvez utiliser un alias pour remplacer le préfixe sur n'importe quel chemin de module. Donc, si vous hébergez un certain nombre de modules sur server ces modules (tant que les noms de référentiel sont les mêmes). Par exemple, nous l'utilisons pour créer des chemins de modules « conviviaux » pour les modules hébergés dans un référentiel git de serveur azuredevops local, comme :

git config --global --add url."https://tfs.myorg.com/myorgcollection/_git".insteadof "https://tfs.myorg.com"
Copier après la connexion
Notre module pourra alors s'identifier comme

(le suffixe

est nécessaire pour la fonctionnalité Azure Devops

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

Pour être honnête, je n'ai pas essayé cela sur un serveur complètement différent juste pour "réécrire" le chemin sur le même serveur, mais en principe cela devrait fonctionner. Alors dans votre cas :

git config --global --add url."https://gitlab.com/company/".insteadof "https://bitbucket.org/company/"
Copier après la connexion
Parce que cela s'applique à .git .

c'est-à-dire lorsque vous

devez citer le

chemin du module déclaré par

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

go get bitbucket.org/company/core
Copier après la connexion
Le seul inconvénient de cette procédure est que vous devez configurer l'alias sur tous les postes de travail (et construire des machines) qui doivent provenir d'un emplacement autre que l'emplacement déclaré dans le chemin du module

. go get

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal