主页 > 知识库 > 在Golang代码中如何自动生成版本号的方法示例

在Golang代码中如何自动生成版本号的方法示例

热门标签:地方门户网站 Linux服务器 服务外包 网站排名优化 铁路电话系统 AI电销 呼叫中心市场需求 百度竞价排名

前言

以前在写C/C++代码时,可以在代码中预定义一些版本宏定义,然后再编译时从外部传入数据作为版本号。 golang代码不支持宏定义,如果每次在代码中硬编码版本信息,一来费时费力,二来很容易忘记更新。

如何更优雅的维护golang程序的版本号呢?

翻阅golang文档之后,在go build发现下面的参数

-ldflags 'flag list'
 arguments to pass on each go tool link invocation.

然后在linker中发现:

-X importpath.name=value
 Set the value of the string variable in importpath named name to value.
 Note that before Go 1.5 this option took two separate arguments.
 Now it takes one argument split on the first = sign.

按照文档中的说明应该是在build时,通过-ldflags设定linker的参数。 然后再通过linker的-X来修改指定路径下面的变量值。

按照这个逻辑,我们改写下面的程序:

package main

import ( 
 "fmt"
)

var _VERSION_ = "unknown"

func main() { 
 fmt.Printf("Version:[%s]\n", _VERSION_)
}

执行下面的build命令:

export TAG=dev-xxxx 
go build -ldflags "-X main._VERSION_='$TAG'" 

在执行程序时,就可以看到输出预定义的版本号了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:
  • 详解Golang 与python中的字符串反转
  • 深入理解golang的异常处理机制
  • Golang开发中常用的代码片段汇总
  • Golang中switch语句和select语句的用法教程
  • golang之log rotate详解
  • Golang读写Excel的方法教程
  • 利用Golang如何调用Linux命令详解
  • Golang多线程刷票的实现代码

标签:湘潭 湖南 崇左 仙桃 兰州 铜川 衡水 黄山

巨人网络通讯声明:本文标题《在Golang代码中如何自动生成版本号的方法示例》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266