在 Go 下构建带有 git 提交编号的程序
2019-02-10 12:42
#旧文章
提示
本文给出的脚本是 Linux 下的,其他平台可以根据原理推导。Go 版本号 1.11.5
第一步我们需要在文件中提供一个变量(常量我没试过)来存储提交编号。
第二步写一个编译脚本
这就是 Go 的编译命令,其中的 -ldflags "-X main.Version=
git rev-parse HEAD"
表示将 main.Version
这个变量的值设置为等号后面的东西,在 Linux 命令行下,由 ```` 包裹的字符串会被执行,执行的标准输出将插入到原始命令中,如本例:
Shell 发现有由 ```` 包裹的字符串,将其提出并执行,得到程序的标准输出为
接着 Shell 将这一串输出放回到原命令中,得到如下结果
于是命令变成了这样,执行编译后编译器就会把 main.Version
设置为 077d7434cb15687fbae2244c34204aa54768ae50
,这个变量在程序中你想怎么用就怎么用。