Modulversionen aus Code in Go abrufen
In Go bietet das Laufzeit-/Debugpaket Zugriff auf detaillierte Informationen zu den Abhängigkeiten und Modulen eines Programms . Mit dieser Funktionalität können Sie Modulversionen innerhalb des Codes abrufen und anzeigen.
Die Funktion debug.ReadBuildInfo() gibt eine BuildInfo-Struktur zurück, die eine Liste aller importierten Abhängigkeiten enthält. Jedes Modul oder jede Abhängigkeit wird durch eine Modulstruktur dargestellt, die die folgenden Felder enthält:
Um die Modulversionen abzurufen und anzuzeigen, können Sie Code wie verwenden Dies:
package main
import (
"fmt"
"log"
"runtime/debug"
)
func main() {
bi, ok := debug.ReadBuildInfo()
if !ok {
log.Printf("Failed to read build info")
return
}
for _, dep := range bi.Deps {
fmt.Printf("Module: %s, Version: %s\n", dep.Path, dep.Version)
}
}
In diesem Beispiel werden die Modul- und Abhängigkeitsinformationen in eine BuildInfo-Struktur geladen, die Abhängigkeiten durchlaufen und deren Pfade und Versionen ausgegeben. Sie können diesen Code ändern, um die Informationen in Ihrem gewünschten Format anzuzeigen, wie zum Beispiel im Beispiel in der Frage.
Dieser Ansatz vermeidet die Notwendigkeit, ldflags zum externen Festlegen der Versionen zu verwenden. Stattdessen stützt es sich auf Informationen, die von Go selbst bereitgestellt werden, was es zu einer zuverlässigen und skalierbaren Lösung für die Verwaltung von Modulversionen macht.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3