>  기사  >  백엔드 개발  >  Go 코드 내에서 모듈 버전을 어떻게 검색할 수 있나요?

Go 코드 내에서 모듈 버전을 어떻게 검색할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-11-03 09:03:29811검색

How Can I Retrieve Module Versions from Within Go Code?

Go 코드 내에서 모듈 버전 검색

Go 도구에는 컴파일된 바이너리 내의 모듈 및 종속성 정보가 포함되어 있습니다. 이 기능을 활용하여 Runtime/debug.ReadBuildInfo() 함수는 애플리케이션이 실행되는 동안 이 데이터에 액세스하는 방법을 제공합니다. 이는 모듈 경로 및 릴리스 번호를 포함하여 종속성 세부 정보가 포함된 배열을 제공합니다.

각 모듈 또는 종속성에 대해 이 배열에는 아래에 자세히 설명된 debug.Module 구조가 포함됩니다.

type Module struct {
    Path    string  // module path
    Version string  // module version
    Sum     string  // checksum
    Replace *Module // replaced by this module
}

이 프로세스를 예로 들어보겠습니다.

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에서 실행하면 다음이 생성됩니다. 출력:

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

자세한 내용은 관련 질문인 GOPATH 및 "go 모듈" 모드에서 사용되는 모든 패키지와 함께 자세한 Go 빌드 로그를 얻는 방법을 참조하세요.

위 내용은 Go 코드 내에서 모듈 버전을 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.