「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Go のコードからモジュールのバージョンを取得するにはどうすればよいですか?

Go のコードからモジュールのバージョンを取得するにはどうすればよいですか?

2024 年 11 月 9 日に公開
ブラウズ:513

How Can I Retrieve Module Versions from Code in Go?

Go のコードからモジュール バージョンを取得する

Go では、ランタイム/デバッグ パッケージを使用して、プログラムの依存関係とモジュールに関する詳細情報にアクセスできます。 。この機能を使用すると、コード内からモジュールのバージョンを取得して表示できます。

debug.ReadBuildInfo() 関数は、インポートされたすべての依存関係のリストを含む BuildInfo 構造体を返します。各モジュールまたは依存関係は、次のフィールドを含むモジュール構造体によって表されます。

  • Path: モジュールのインポート パス。
  • Version: モジュールのバージョン。
  • ]Sum: モジュールのコードのチェックサム。
  • Replace: これを置き換えるモジュール (存在する場合)。

モジュールのバージョンを取得して表示するには、次のようなコードを使用できます。 this:

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