Maison >développement back-end >Golang >Comment puis-je extraire les versions de module des exécutables Go ?

Comment puis-je extraire les versions de module des exécutables Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 08:57:30623parcourir

How can I extract module versions from Go executables?

Extraction des versions de module à partir des exécutables Go

Dans les exécutables binaires Go, l'outil Go intègre des informations sur le module et les dépendances. Ces informations sont accessibles grâce à la fonction runtime/debug.ReadBuildInfo().

Problème

Vous devez afficher les versions des modules utilisés dans vos exécutables Go, mais vous avez du mal avec la mise en œuvre. Vous avez envisagé d'utiliser ldflags, mais ce n'est pas évolutif.

Solution

Le debug.ReadBuildInfo() renvoie une liste d'instances debug.Module, qui fournissent les éléments suivants information:

  • Chemin : Le chemin du module
  • Version : La version du module
  • Somme : La somme de contrôle du module
  • Remplacer : Le module qu'il remplace

Exemple de code

Le code suivant montre comment utiliser ReadBuildInfo() pour récupérer les versions de module :

<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>

Cet exemple afficher les chemins et les versions de toutes les dépendances utilisées par l'exécutable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn