從Go 中的程式碼擷取模組版本
在Go 中,執行時間/偵錯套件提供對程式依賴項和模組的詳細資訊的存取。此功能使您能夠從程式碼中檢索和顯示模組版本。
debug.ReadBuildInfo() 函數傳回一個 BuildInfo 結構,其中包含所有匯入的依賴項的清單。每個模組或依賴項都由 Module 結構體表示,其中包含以下欄位:
要檢索並顯示模組版本,您可以使用以下程式碼:
package main
import (
"fmt"
"log"
"runtime/debug"
)
func main() {
bi, ok := debug.ReadBuildInfo()
if !ok {
log.Printf("Failed to read build info")
return
}
for _, dep := range bi.Deps {
fmt.Printf("Module: %s, Version: %s\n", dep.Path, dep.Version)
}
}
此範例將模組和依賴項資訊載入到 BuildInfo 結構中,並迭代依賴項,列印它們的路徑和版本。您可以修改此程式碼以按照您想要的格式顯示訊息,例如問題中的範例。
這種方法避免了使用 ldflags 在外部設定版本的需要。相反,它依賴 Go 本身提供的信息,使其成為管理模組版本的可靠且可擴展的解決方案。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3