Heim >Backend-Entwicklung >Golang >Wie verwalte ich private Repository-Abhängigkeiten mit Go-Modulen?

Wie verwalte ich private Repository-Abhängigkeiten mit Go-Modulen?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 17:24:11227Durchsuche

How Do I Manage Private Repository Dependencies with Go Modules?

Go-Module, private Repositories und GOPATH

Private Modulabhängigkeiten verstehen

In Go-Modulen „punktlose“ Pfade wie „mycompany/mylib“ sind für das Standard-Repository reserviert. Dies bedeutet, dass für Module, auf die über private Repositorys zugegriffen wird, Domänennamen und Projekte gebunden werden sollten.

Alles-oder-Nichts-Modulabhängigkeitsmanagement

Go-Module erzwingen ein „Alles“. -oder-nichts"-Ansatz. Bei der Verwendung von Modulen müssen alle Abhängigkeiten mithilfe des Modulsystems (go get) aufgelöst werden. Der GOPATH wird überflüssig, außer als Cache für heruntergeladene Module.

Konsequenzen für die Iteration in privaten Repositories

In der Vergangenheit konnten Entwickler Bibliotheken lokal entwickeln, bevor sie Änderungen festschreiben. Bei Modulen haben Sie zwei Möglichkeiten:

  1. Remote-Abhängigkeit akzeptieren und iterieren: Dies beinhaltet das Pushen und Abrufen von Änderungen aus dem Remote-Repository, was möglicherweise eine ständige Internetverbindung erfordert.
  2. Zusammenführung in einem einzigen Git-Repository: Dieser Ansatz vereint alle Bibliotheken in einem einzigen Repository, sodass keine Remote-Installation erforderlich ist Abhängigkeiten.

Fallstudie mit vereinfachtem Code

Ihr Beispielcode stellt ein häufiges Problem beim Übergang von Dep- zu Go-Modulen dar. Wenn GO111MODULE auf „on“ gesetzt ist, tritt der Fehler „Modul für Pfad mycompany/mylib kann nicht gefunden“ auf. Dies liegt daran, dass mylib noch kein Modul ist.

Lösung

So verwenden Sie ein privates Repository für mylib als Abhängigkeit in myprogram:

  1. Erstellen Sie ein privates Repository für mylib.
  2. Verwenden Sie GOPRIVATE, um anzugeben, dass mylib ein privates Repository ist Repository.
  3. Mylib mit go mod edit -replace mycompany/mylib=git.example.com/mycompany/mylib importieren.
  4. Änderungen in das private Repository übertragen.

Zusätzliche Überlegungen

  • GOPROXY kann für die Offline-Entwicklung mit privaten Modulen verwendet werden.
  • Der GITHUB_TOKEN-Workaround kann zu Authentifizierungszwecken angewendet werden.

Das obige ist der detaillierte Inhalt vonWie verwalte ich private Repository-Abhängigkeiten mit Go-Modulen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn