昨天跑得好好的程序突然出了问题,查看它的版本号,机器冷冰冰地告诉你👇
1.0.12那么,同样的场景下,机器告诉你的信息是这样,那debug是否容易多了呢?!
gbb安装
$ go get -u github.com/voidint/gbb复制代码$ cd $GOPATH/src/github.com/voidint/gbb && go install
复制代码基本使用
gbbgbb./gbbgbbgbbgo build/installgb准备
gbbgbb.jsongbb.json$ rm -f gbb.json
复制代码gbb对go install/build、gb等golang编译工具进行包装,使编译得到的二进制文件的版本信息中包含编译时间戳、git commit等信息。
gbbv0.0.1gbbgitcommitv0.0.1debugstep0
编译时间commit号package build
var (
    Date   string
    Commit string
)
复制代码然后,在代码中打印版本号的位置上将这些信息格式化输出,类似👇
step1
gbb initgbb.json合适的地方指哪些地方?一般规律是这样:
go build/installgbb inittoolmaingbgbb initgbb.jsongbb.jsonstep2
gbb.jsongbb.jsongbb init$ gbb --debug
==> go build -ldflags  '-X "github.com/voidint/gbb/build.Date=2016-12-17T22:18:32+08:00" -X "github.com/voidint/gbb/build.Commit=db8b606cfc2b24a24e2e09acac24a52c47b68401"'
复制代码编译完后在目录下多出一个编译后的二进制文件,接着打印版本信息,看看是否实现我们设定的目标了。
$ ./gbb version
gbb version v0.0.1
date: 2016-12-17T22:18:32+08:00
commit: db8b606cfc2b24a24e2e09acac24a52c47b68401
复制代码😊
gbb.json
gbb.jsongbbgbb initnpm initversiontoolgo_buildgo_installgb_build_pakcageDateCommitgithub.com/voidint/gbb/buildvariablesvariablevaluevariableDatevalue{{.date}}