首頁  >  文章  >  後端開發  >  如何從 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 實例的列表,它提供以下內容資訊:

  • 路徑:模組的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