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