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

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

Mary-Kate Olsen
发布: 2024-10-31 08:57:30
原创
637 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板