为程序打上编译标记

go link 命令有-X importpath.name=value选项.

package main

import (
    "fmt"
)

var (
    build string
    version string
)

func main() {
    fmt.Println("build:", build)
    fmt.Println("version:", version)
}

如果你的项目有git的某个tag,则可执行如下命令:

go build -ldflags="-X main.build=$(date +%Y-%m-%d_%H:%M) -X main.version=$(git describe --tags)"

运行结果:

build: 2018-08-26_22:11
version: 0.0.10