首頁 > 後端開發 > Golang > 如何從 Go 程式碼中檢索模組版本?

如何從 Go 程式碼中檢索模組版本?

Susan Sarandon
發布: 2024-11-03 09:03:29
原創
868 人瀏覽過

How Can I Retrieve Module Versions from Within Go Code?

從 Go 程式碼中擷取模組版本

Go 工具在已編譯的二進位檔案中包含模組和相依性資訊。利用此功能,runtime/debug.ReadBuildInfo() 函數提供了在應用程式執行時存取此資料的方法。它提供了一個包含依賴項詳細資訊的數組,包括模組路徑和版本號。

對於每個模組或依賴項,此數組包含一個debug.Module 結構,詳細資訊如下:

1

2

3

4

5

6

type Module struct {

    Path    string  // module path

    Version string  // module version

    Sum     string  // checksum

    Replace *Module // replaced by this module

}

登入後複製

至舉例說明此流程:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

 

import (

    "fmt"

    "log"

    "runtime/debug"

 

    "github.com/icza/bitio"

)

 

func main() {

    _ = bitio.NewReader

    bi, ok := debug.ReadBuildInfo()

    if !ok {

        log.Printf("Failed to read build info")

        return

    }

 

    for _, dep := range bi.Deps {

        fmt.Printf("Dep: %+v\n", dep)

    }

}

登入後複製

在Go Playground 上執行時,會產生以下輸出:

1

Dep: &{Path:github.com/icza/bitio Version:v1.0.0 Sum:h1:squ/m1SHyFeCA6+6Gyol1AxV9nmPPlJFT8c2vKdj3U8= Replace:<nil>}

登入後複製

請參閱相關問題以獲得更多見解:如何取得詳細的Go 建置日誌,以及GOPATH 和「go module」模式中使用的所有包?

以上是如何從 Go 程式碼中檢索模組版本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板