Go 编译时加入版本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import (
"fmt"
"os"
)
var (
gitHash string
buildTime string
goVersion string
)
func main() {
args := os.Args
if len(args) == 2 && (args[1] == "--version" || args[1] == "-v") {
fmt.Printf("Git Commit Hash: %s \n", gitHash)
fmt.Printf("Build TimeStamp: %s \n", buildTime)
fmt.Printf("GoLang Version: %s \n", goVersion)
return
}
}
1
go build -ldflags "-X 'main.goVersion=$(go version)' -X 'main.gitHash=$(git show -s --format=%H)' -X 'main.buildTime=$(git show -s --format=%cd)'"