L'éditeur php Baicao répondra à votre question sur le transfert du chemin d'importation local vers le chemin d'importation distant dans Golang. Dans le développement Golang, nous rencontrons souvent la situation de passer du chemin d'importation local au chemin d'importation distant, en particulier lorsque plusieurs personnes collaborent au développement ou à la migration d'un projet. Cet article détaillera comment gérer correctement ce problème pour garantir le bon fonctionnement de votre code. Nous allons jeter un coup d'oeil!
Je viens de commencer à diviser mon application en différents référentiels. Comme beaucoup de gens, j'ai du mal à gérer Go et à changer de référentiel. Mais il existe de nombreuses questions et réponses à ces questions, je ne les poserai donc pas ici.
Au lieu de cela, j'ai une question simple mais je n'arrive pas à la comprendre. Tous mes modules, puisqu'il s'agit d'une grosse application, ne sont que des références locales. Par exemple core/validate
etc.
Déplacez le contenu vers plusieurs référentiels. Cela semblait poser des problèmes avec les références locales, j'ai donc modifié le chemin vers le chemin distant, par exemple gitlab.com/<group>/core.git/validate</group>
comme plusieurs questions et réponses l'ont suggéré.
Cependant, cela posera un problème. Si gitlab.com/<group>/core.git/config</group>
fait référence à 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
cela ne signifie pas que gitlab.com/ <group> pointe maintenant vers quelque chose dans <code>pck/mod/gitlab.com/...
ou vers le serveur distant, ou n'importe où ailleurs, comme quand ils n'ont que des chemins relatifs comme
go mod init
并从头开始重建 mod,但是 go mod tidy
不起作用,我不知道我是否也必须在 go.work
Je n'ai pas essayé de faire
go get
Il semble que si vous utilisez une référence distante pour apporter les modifications que vous apportez à votre code lors du développement, vous devez pousser les modifications afin qu'elles se trouvent là où les points de référence et peut-être le faire
Alors, comment ces chemins à distance fonctionnent-ils avec le développement, qu'est-ce qui me manque ? SolutionIl existe plusieurs concepts qui peuvent prêter à confusion.
Un module est une collection de packages. Vous pouvez nommer votre module "mymodule", puis tous les packages sous "mymodule" seront nommés "mymodule/pkg1", "mymodule/pkg2/otherpkg", etc.
Ensuite, vous avez le chemin d’importation de votre package. Le chemin d'importation indique l'emplacement du package. Par exemple, si votre code source est dans "mymodule/pkg1" et que vous importez "mymodule/pkg2", alors il s'agit d'une référence au package sous le même module.
Imaginez maintenant que vous avez un autre module appelé "othermodule" sur "github.com/mygroup/othermodule". Vous importez un package dans ce module sous le nom "github.com/mygroup/othermodule/pkg1". Si "othermodule/pkg1" fait référence à "othermodule/pkg2", alors il importe toujours "othermodule/pkg2" car il se trouve dans le même module. Mais à partir de "mymodule/pkg1", vous l'importez sous "github.com/mygroup/othermodule/pkg2".
Le système de modules Go utilise des références de version d'autres modules. Lorsque vous incluez un package d'un module, la version spécifique du module est ajoutée à go.mod. Si vous transmettez de nouvelles modifications au module, vous devez mettre à jour la référence pour inclure ces modifications. C'est pourquoi il est préférable de ne pas diviser un projet étroitement couplé en plusieurs modules.
Si vous souhaitez développer plusieurs modules ensemble, utilisez la directive "replace" pour utiliser une copie locale du module au lieu de pointer vers la version sur le référentiel. 🎜
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!