Maison  >  Article  >  développement back-end  >  Comment puis-je récupérer les versions de modules à partir de Go Code ?

Comment puis-je récupérer les versions de modules à partir de Go Code ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 09:03:29810parcourir

How Can I Retrieve Module Versions from Within Go Code?

Récupération des versions de modules à partir du code Go

Les outils Go incluent des informations sur les modules et les dépendances dans le binaire compilé. Exploitant cette fonctionnalité, la fonction runtime/debug.ReadBuildInfo() présente une méthode pour accéder à ces données pendant l'exécution de votre application. Il fournit un tableau contenant les détails des dépendances, y compris le chemin du module et le numéro de version.

Pour chaque module ou dépendance, ce tableau contient une structure debug.Module, détaillée ci-dessous :

type Module struct {
    Path    string  // module path
    Version string  // module version
    Sum     string  // checksum
    Replace *Module // replaced by this module
}

Pour illustrent ce processus :

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

Lorsqu'il est exécuté sur Go Playground, il produit le résultat suivant :

Dep: &{Path:github.com/icza/bitio Version:v1.0.0 Sum:h1:squ/m1SHyFeCA6+6Gyol1AxV9nmPPlJFT8c2vKdj3U8= Replace:<nil>}

Reportez-vous à la question connexe pour plus d'informations : Comment acquérir une version Go détaillée logs, ainsi que tous les packages utilisés dans les modes GOPATH et "go module" ?

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