从 Go 中的代码中检索模块版本
在 Go 中,运行时/调试包提供对程序依赖项和模块的详细信息的访问。此功能使您能够从代码中检索和显示模块版本。
debug.ReadBuildInfo() 函数返回一个 BuildInfo 结构,其中包含所有导入的依赖项的列表。每个模块或依赖项都由 Module 结构体表示,其中包含以下字段:
要检索并显示模块版本,您可以使用如下代码:
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)
}
}
此示例将模块和依赖项信息加载到 BuildInfo 结构中,并迭代依赖项,打印出它们的路径和版本。您可以修改此代码以按照您想要的格式显示信息,例如问题中的示例。
这种方法避免了使用 ldflags 在外部设置版本的需要。相反,它依赖于 Go 本身提供的信息,使其成为管理模块版本的可靠且可扩展的解决方案。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3