Résoudre les conflits de dépendance du module Go avec les importations de niveau supérieur et de sous-module
Ce problème survient lorsqu'un module de niveau supérieur et l'un des ses sous-modules sont importés séparément sous différentes versions, conduisant à des dépendances conflictuelles. Considérez un scénario dans lequel votre projet a deux dépendances, github.com/foo/bar et github.com/raz/mataz. Lors de l'exécution du téléchargement du mod go, deux versions différentes de github.com/shared/dependency sont téléchargées en raison de la présence de sous-modules.
L'inspection des modules téléchargés révèle plusieurs versions téléchargées :
Cette incompatibilité entraîne une erreur d'importation ambiguë lors de la tentative d'importation de github.com/ partagé/dépendance/api. L'outil go ne peut pas déterminer quelle version utiliser en raison des versions conflictuelles présentes dans les deux répertoires.
Solution : mise à niveau des versions de dépendance
La cause première de ce problème est souvent liés à la gestion des versions des modules préalables au sein des dépendances en conflit. L'ajout de la ligne suivante à votre fichier go.mod force les dépendances en conflit à utiliser des versions compatibles avec go-module :
replace ( github.com/shared/dependency => github.com/shared/dependency v1.2.0 )
Cela force effectivement les références à github.com/shared/dependency à utiliser des versions compatibles avec go. modules, résolvant le problème de dépendance conflictuelle. Il est important de noter que cette solution fonctionne car toutes les références à la dépendance partagée sont dirigées vers des versions compatibles go-module.
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!