Modulversionen aus dem Go-Code abrufen
Die Go-Tools umfassen Modul- und Abhängigkeitsinformationen innerhalb der kompilierten Binärdatei. Die Funktion runtime/debug.ReadBuildInfo() nutzt diese Funktion und bietet eine Methode für den Zugriff auf diese Daten, während Ihre Anwendung ausgeführt wird. Es liefert ein Array mit Abhängigkeitsdetails, einschließlich Modulpfad und Versionsnummer.
Für jedes Modul oder jede Abhängigkeit enthält dieses Array eine debug.Module-Struktur, die unten detailliert beschrieben wird:
type Module struct { Path string // module path Version string // module version Sum string // checksum Replace *Module // replaced by this module }
An Veranschaulichen Sie diesen Prozess:
package main import ( "fmt" "log" "runtime/debug" "github.com/icza/bitio" ) func main() { _ = bitio.NewReader bi, ok := debug.ReadBuildInfo() if !ok { log.Printf("Failed to read build info") return } for _, dep := range bi.Deps { fmt.Printf("Dep: %+v\n", dep) } }
Bei Ausführung auf dem Go Playground ergibt sich die folgende Ausgabe:
Dep: &{Path:github.com/icza/bitio Version:v1.0.0 Sum:h1:squ/m1SHyFeCA6+6Gyol1AxV9nmPPlJFT8c2vKdj3U8= Replace:<nil>}
Weitere Einblicke finden Sie in der entsprechenden Frage: So erhalten Sie einen detaillierten Go-Build Protokolle, zusammen mit allen Paketen, die im GOPATH- und „Go-Modul“-Modus verwendet werden?
Das obige ist der detaillierte Inhalt vonWie kann ich Modulversionen aus Go-Code abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!