>백엔드 개발 >Golang >Go 실행 파일에서 모듈 버전을 어떻게 추출할 수 있나요?

Go 실행 파일에서 모듈 버전을 어떻게 추출할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-31 08:57:30623검색

How can I extract module versions from Go executables?

Go 실행 파일에서 모듈 버전 추출

Go 바이너리 실행 파일에서 Go 도구는 모듈 및 종속성 정보를 포함합니다. 이 정보는 Runtime/debug.ReadBuildInfo() 함수를 사용하여 액세스할 수 있습니다.

문제

Go 실행 파일에 사용된 모듈의 버전을 표시해야 합니다. 하지만 구현에 어려움을 겪고 있습니다. ldflags 사용을 고려했지만 확장 가능하지 않습니다.

솔루션

debug.ReadBuildInfo()는 다음을 제공하는 debug.Module 인스턴스 목록을 반환합니다. 정보:

  • 경로: 모듈의 경로
  • 버전: 모듈의 버전
  • 합계: 모듈의 체크섬
  • 교체: 대체하는 모듈

코드 예제

다음 코드는 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으로 문의하세요.