Go build 添加版本等信息
Go 在编译时可以添加一些额外的参数,这些参数可以用来添加如版本等信息。
比如有以下的 t.go 文件源码👇
package main
import (
"flag"
"fmt"
"runtime"
)
var (
version string
buildTime string
commitID string
)
func init() {
flag.StringVar(&version, "version", "", "版本信息")
}
func main() {
flag.Parse()
if version == "version" || version == "v" {
fmt.Printf("Git commit: %s\nGo version: %s\nBuilt: %s\nOS/Arch: %s/%s\n ",
commitID, runtime.Version(), buildTime, runtime.GOOS, runtime.GOARCH)
return
}
fmt.Println("hello world")
}
用以下命令编译👇
注意:-X
后面要写完整的包路径,示例中是 main 包。
go build -ldflags "-X 'main.version=1.0.0' -X 'main.buildTime=$(date +"%Y-%m-%d %H:%M:%S")' -X 'main.commitID=1234567890'" -o t t.go
可以看到,编译后的文件中包含了版本信息,比如版本号、编译时间、提交 ID 等。