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 중국어 웹사이트의 기타 관련 기사를 참조하세요!