首页  >  文章  >  后端开发  >  如何从 Go 可执行文件中提取模块版本?

如何从 Go 可执行文件中提取模块版本?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-31 08:57:30456浏览

How can I extract module versions from Go executables?

从 Go 可执行文件中提取模块版本

在 Go 二进制可执行文件中,Go 工具嵌入模块和依赖项信息。可以使用runtime/debug.ReadBuildInfo()函数访问此信息。

问题

您需要显示Go可执行文件中使用的模块的版本,但你在实施过程中遇到了困难。您考虑过使用 ldflags,但它不可扩展。

解决方案

debug.ReadBuildInfo() 返回 debug.Module 实例的列表,它提供以下内容information:

  • Path:模块的路径
  • Version:模块的版本
  • Sum:模块的校验和
  • Replace:它替换的模块

代码示例

以下代码演示了如何使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn