Heim > Backend-Entwicklung > Golang > Wie kann ich Modulversionen aus Go-Code abrufen?

Wie kann ich Modulversionen aus Go-Code abrufen?

Susan Sarandon
Freigeben: 2024-11-03 09:03:29
Original
826 Leute haben es durchsucht

How Can I Retrieve Module Versions from Within Go Code?

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
}
Nach dem Login kopieren

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)
    }
}
Nach dem Login kopieren

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>}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage