Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Modulversionen aus ausführbaren Go-Dateien extrahieren?

Wie kann ich Modulversionen aus ausführbaren Go-Dateien extrahieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 08:57:30456Durchsuche

How can I extract module versions from Go executables?

Modulversionen aus ausführbaren Go-Dateien extrahieren

In binären ausführbaren Go-Dateien bettet das Go-Tool Modul- und Abhängigkeitsinformationen ein. Auf diese Informationen kann mit der Funktion „runtime/debug.ReadBuildInfo()“ zugegriffen werden.

Problem

Sie müssen die Versionen der Module anzeigen, die in Ihren ausführbaren Go-Dateien verwendet werden. aber Sie haben Schwierigkeiten mit der Umsetzung. Sie haben über die Verwendung von ldflags nachgedacht, aber es ist nicht skalierbar.

Lösung

debug.ReadBuildInfo() gibt eine Liste von debug.Module-Instanzen zurück, die Folgendes bereitstellen Informationen:

  • Pfad: Der Pfad des Moduls
  • Version: Die Version des Moduls
  • Summe: Die Prüfsumme des Moduls
  • Ersetzen: Das Modul, das es ersetzt

Codebeispiel

Der folgende Code zeigt, wie ReadBuildInfo() zum Abrufen von Modulversionen verwendet wird:

<code class="go">package main

import (
    "fmt"
    "runtime/debug"
)

func main() {
    bi, ok := debug.ReadBuildInfo()
    if !ok {
        // Handle failure
    }

    for _, dep := range bi.Deps {
        fmt.Printf("Dependency: %s, Version: %s\n", dep.Path, dep.Version)
    }
}</code>

Dieses Beispiel wird Gibt die Pfade und Versionen aller von der ausführbaren Datei verwendeten Abhängigkeiten aus.

Das obige ist der detaillierte Inhalt vonWie kann ich Modulversionen aus ausführbaren Go-Dateien extrahieren?. 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