从 Go 可执行文件中提取模块版本
在 Go 二进制可执行文件中,Go 工具嵌入模块和依赖项信息。可以使用runtime/debug.ReadBuildInfo()函数访问此信息。
问题
您需要显示Go可执行文件中使用的模块的版本,但你在实施过程中遇到了困难。您考虑过使用 ldflags,但它不可扩展。
解决方案
debug.ReadBuildInfo() 返回 debug.Module 实例的列表,它提供以下内容information:
代码示例
以下代码演示了如何使用 ReadBuildInfo() 检索模块版本:
<code class="go">package main import ( "fmt" "runtime/debug" ) func main() { bi, ok := debug.ReadBuildInfo() if !ok { // Handle failure } for _, dep := range bi.Deps { fmt.Printf("Dependency: %s, Version: %s\n", dep.Path, dep.Version) } }</code>
此示例将输出可执行文件使用的所有依赖项的路径和版本。
以上是如何从 Go 可执行文件中提取模块版本?的详细内容。更多信息请关注PHP中文网其他相关文章!