Heim > Artikel > Backend-Entwicklung > Wie werden Submodulversionen in einem Go-Repository mit mehreren go.mod-Dateien verwaltet?
Submodulversionierung in Go verwalten
Wenn ein Go-Repository mehrere go.mod-Dateien enthält, ist es wichtig zu verstehen, wie Submodulversionen verwaltet werden. Im bereitgestellten Beispiel ist eine go.mod-Datei im Stammverzeichnis und im Unterverzeichnis vorhanden. Dies wirft die Frage auf, wie Submodulversionen veröffentlicht und aktualisiert werden.
Submodulversionierung
Entgegen der Intuition stimmen Submodulversionen nicht unbedingt mit denen des übergeordneten Moduls überein. Sie gelten als unabhängige Module innerhalb desselben Repositorys. Daher wird durch die Aktualisierung des Root-Moduls nicht immer auch das Submodul aktualisiert.
Go-Tagging und Release-Management
Um die Versionierung von Submodulen zu verwalten, nutzt Go Git-Tags. Tags dienen als Release-Marker für bestimmte Versionen. Hierarchische Git-Tags werden zum Markieren von Submodulversionen verwendet. Im gegebenen Beispiel ist die neueste Version von Vault 1.3.3, während das neueste Tag für Vault/API 1.0.4 ist.
Submodulversionen aktualisieren
An Aktualisieren Sie das Vault-/API-Submodul. Verwenden Sie einfach „go get“, um die neueste Version abzurufen:
<code class="go">go get github.com/hashicorp/vault/api</code>
Go erkennt und installiert automatisch die neueste Submodulversion, ohne sie in go.mod anzugeben.
Fazit
Das Verständnis der Submodulversionierung ist entscheidend, wenn Sie mit mehreren go.mod-Dateien arbeiten. Submodule sind unabhängige Einheiten mit eigenen Versionierungsmechanismen und ihre Aktualisierung erfordert einen separaten go get-Befehl ohne explizite Angabe von Versionen. Hierarchisch strukturierte Git-Tags werden verwendet, um bestimmte Releases von Submodulen zu kennzeichnen.
Das obige ist der detaillierte Inhalt vonWie werden Submodulversionen in einem Go-Repository mit mehreren go.mod-Dateien verwaltet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!