如何在Go项目中输出版本信息?

这篇博客介绍了如何在Go项目中实现版本信息的输出,包括通过构建参数`-ldflags -X`设置变量,以及提供一个完整的版本管理包的示例,使得在运行时能够显示Version、Go Version和Git Commit等信息。
摘要由CSDN通过智能技术生成

我们经常在使用CLI工具的时候,都会有这样的参数输出:

➜  ~ docker version
Client: Docker Engine - Community
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        6247962
 Built:             Sun Feb 10 04:12:39 2019
 OS/Arch:           darwin/amd64
 Experimental:      false
➜  ~

可以打印出构建时对应的版本信息,比如 Version,Go Version,Git Commit等,这个是如何实现的呢?

实现

主要是通过ldflags参数来实现在构建的时候对变量进行赋值。

比如下面一段代码:

package main

import (
    "flag"
    "fmt"
    "os"
)

//需要赋值的变量
var version = ""

//通过flag包设置-version参数
var printVersion bool

func init() {
    flag.BoolVar(&printVersion, "version", false, "print program build version")
    flag.Parse()
}

func main() {
    if printVersion {
        println(version)
        os.Exit(0)
    }
    fmt.Printf("example for print version")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值