从 Go 中的代码检索模块版本
在 Go 中,运行时/调试包提供对程序依赖项和模块的详细信息的访问。此功能使您能够从代码中检索和显示模块版本。
debug.ReadBuildInfo() 函数返回一个 BuildInfo 结构,其中包含所有导入的依赖项的列表。每个模块或依赖项都由 Module 结构体表示,其中包含以下字段:
要检索并显示模块版本,您可以使用如下代码this:
<code class="go">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) } }</code>
此示例会将模块和依赖项信息加载到 BuildInfo 结构中,并迭代依赖项,打印出它们的路径和版本。您可以修改此代码以按照您想要的格式显示信息,例如问题中的示例。
这种方法避免了使用 ldflags 在外部设置版本的需要。相反,它依赖于 Go 本身提供的信息,使其成为管理模块版本的可靠且可扩展的解决方案。
以上是如何从 Go 代码中检索模块版本?的详细内容。更多信息请关注PHP中文网其他相关文章!