"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso recuperar versões de módulos do código no Go?

Como posso recuperar versões de módulos do código no Go?

Publicado em 2024-11-09
Navegar:749

How Can I Retrieve Module Versions from Code in Go?

Recuperando versões de módulo do código no Go

No Go, o pacote runtime/debug fornece acesso a informações detalhadas sobre as dependências e módulos de um programa . Esta funcionalidade permite recuperar e exibir versões do módulo de dentro do código.

A função debug.ReadBuildInfo() retorna uma estrutura BuildInfo que contém uma lista de todas as dependências importadas. Cada módulo ou dependência é representado por uma estrutura Module, que inclui os seguintes campos:

  • Path: o caminho de importação do módulo.
  • Version: a versão do módulo.
  • Soma: A soma de verificação do código do módulo.
  • Replace: O módulo que substitui este, se qualquer.

Para recuperar e exibir as versões do módulo, você pode usar um código como este:

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 exemplo carregará o módulo e as informações de dependência em uma estrutura BuildInfo e iterará sobre as dependências, imprimindo seus caminhos e versões. Você pode modificar este código para exibir as informações no formato desejado, como o exemplo da pergunta.

Essa abordagem evita a necessidade de usar ldflags para definir as versões externamente. Em vez disso, ele depende de informações fornecidas pelo próprio Go, tornando-o uma solução confiável e escalável para gerenciar versões de módulos.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3