Auflösen von Go-Modul-Abhängigkeitskonflikten mit Importen von Top-Level- und Sub-Modulen
Dieses Problem tritt auf, wenn ein Top-Level-Modul und eines davon Seine Untermodule werden separat als unterschiedliche Versionen importiert, was zu widersprüchlichen Abhängigkeiten führt. Stellen Sie sich ein Szenario vor, in dem Ihr Projekt zwei Abhängigkeiten hat: github.com/foo/bar und github.com/raz/mataz. Beim Ausführen von „go mod download“ werden aufgrund des Vorhandenseins von Untermodulen zwei verschiedene Versionen von github.com/shared/dependency heruntergeladen.
Die Überprüfung der heruntergeladenen Module zeigt mehrere heruntergeladene Versionen:
Diese Nichtübereinstimmung führt zu einem mehrdeutigen Importfehler beim Versuch, github.com/ zu importieren. geteilt/Abhängigkeit/API. Das Go-Tool kann aufgrund widersprüchlicher Versionen in beiden Verzeichnissen nicht ermitteln, welche Version verwendet werden soll.
Lösung: Abhängigkeitsversionen aktualisieren
Die Hauptursache für dieses Problem ist häufig im Zusammenhang mit der Versionierung von Pre-Go-Modulen innerhalb der widersprüchlichen Abhängigkeiten. Durch das Hinzufügen der folgenden Zeile zu Ihrer go.mod-Datei werden die widersprüchlichen Abhängigkeiten gezwungen, go-modulfähige Versionen zu verwenden:
replace ( github.com/shared/dependency => github.com/shared/dependency v1.2.0 )
Dadurch werden Verweise auf github.com/shared/dependency effektiv dazu gezwungen, mit go kompatible Versionen zu verwenden Module, wodurch das widersprüchliche Abhängigkeitsproblem gelöst wird. Es ist wichtig zu beachten, dass diese Lösung funktioniert, da alle Verweise auf die gemeinsame Abhängigkeit auf Go-Modul-fähige Versionen verwiesen werden.
Das obige ist der detaillierte Inhalt vonWie löst man Abhängigkeitskonflikte zwischen Go-Modulen und Importen von Top-Level- und Untermodulen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!