"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo recuperar versiones de módulos de Code in Go?

¿Cómo puedo recuperar versiones de módulos de Code in Go?

Publicado el 2024-11-09
Navegar:274

How Can I Retrieve Module Versions from Code in Go?

Recuperar versiones de módulos desde el código en Go

En Go, el paquete de tiempo de ejecución/depuración brinda acceso a información detallada sobre las dependencias y los módulos de un programa . Esta funcionalidad le permite recuperar y mostrar versiones de módulos desde el código.

La función debug.ReadBuildInfo() devuelve una estructura BuildInfo que contiene una lista de todas las dependencias importadas. Cada módulo o dependencia está representado por una estructura de módulo, que incluye los siguientes campos:

  • Ruta: la ruta de importación del módulo.
  • Versión: la versión del módulo.
  • Suma: la suma de verificación del código del módulo.
  • Reemplazar: el módulo que reemplaza a este, si lo hay.

Para recuperar y mostrar las versiones del módulo, puede usar código como esto:

package main

import (
    "fmt"
    "log"
    "runtime/debug"
)

func main() {
    bi, ok := debug.ReadBuildInfo()
    if !ok {
        log.Printf("Failed to read build info")
        return
    }

    for _, dep := range bi.Deps {
        fmt.Printf("Module: %s, Version: %s\n", dep.Path, dep.Version)
    }
}

Este ejemplo cargará el módulo y la información de dependencia en una estructura BuildInfo e iterará sobre las dependencias, imprimiendo sus rutas y versiones. Puede modificar este código para mostrar la información en el formato deseado, como el ejemplo de la pregunta.

Este enfoque evita la necesidad de usar ldflags para configurar las versiones externamente. En cambio, se basa en la información proporcionada por el propio Go, lo que la convierte en una solución confiable y escalable para administrar versiones de módulos.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3