golang程序版本管理
概述版本管理主要用于对运行程序的版本追踪,从而可以管理线上服务的运行版本,避免各个版本的服务程序混淆.这里通常的做法为在程序中埋入版本标志,同时该版本号会对应到git上的tag或release版本.从而对线上服务更改有一个更全面的信息说明.这里将介绍基于GNU风格一种版本命名方式. 1 版本号命名格式主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]] Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]] 示例 : 1.2.1,2.0,5.0.0 build-13124
具有相同名称但不同主版本号的程序集不可互换。例如,这适用于对产品的大量重写,这些重写使得无法实现向后兼容性。
如果两个程序集的名称和主版本号相同,而次版本号不同,这指示显著增强,但照顾到了向后兼容性。例如,这适用于产品的修正版或完全向后兼容的新版本。
内部版本号的不同表示对相同源所作的重新编译。这适合于更改处理器、平台或编译器的情况。
名称、主版本号和次版本号都相同但修订号不同的程序集应是完全可互换的。这适用于修复以前发布的程序集中的安全漏洞。 程序集的只有内部版本号或修订号不同的后续版本被认为是先前版本的修补程序 (Hotfix) 更新。 2. 版本号管理策略1). 项目初版本时,版本号可以为 0.1 或 0.1.0,也可以为 1.0 或 1.0.0. 3. 项目中埋入版本信息针对每个服务,新建一个version的包用于版本管理,手动更改编译脚本中的版本号.且该版本号必须和gitlab上的版本号一一对应. 当执行二进制程序的并输入-v参数时则输出该程序的版本号,不输入任何参数时则运行程序. 4.示例示例见https://github.com/g4zhuj/ver... 执行后产生的结果如下: ./example -v 参考https://golang.org/cmd/link/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |