当前位置: 首页 > news >正文

Go工程打包版本号

Go工程打包版本号

有些项目,会把版本号写入源码中,每次升级都修改源码号。在 Go 项目中这不是好的处理方式。

一般情况下,可以通过 Git 获得版本信息,可以通过 shell 脚本实现,最后编译 Go 项目时,将版本信息通过 -X 链接参数传递进去:

// main.go
import ("fmt"
)var Version stringfunc main() {fmt.Println("Version:", Version)
}
#!/bin/shversion=""if [ -f "VERSION" ]; thenversion=`cat VERSION`
fiif [[ -z $version ]]; thenif [ -d ".git" ]; thenversion=`shell git symbolic-ref HEAD | cut -b 12-)-$(shell git describe --tags --always --dirty --abbrev=7 2>/dev/null || echo dev`elseversion="unknown"fi
fi
CGO_ENABLED=0 go build -ldflags "-X example.com/main.Version=$version" main.go
# 最终版本号类似于 master-v1.0.4-2-ge5a4ce0-dirty
http://www.hskmm.com/?act=detail&tid=27164

相关文章:

  • C#调用matlab封装的dll报错
  • 生产设备数据采集怎么做?主要有哪些应用?
  • 2025 年编码器源头厂家最新推荐榜单:聚焦无磁 / 光学 / 脉冲 / 绝对型等多类型编码器,精选优质企业助力采购决策
  • 2025 年绝对式编码器源头厂家最新推荐榜单:增量 / 多圈 / 二进制 /ssi/ 拉线型产品优质企业全面盘点
  • go.work工作区
  • 2025 房屋改造设计公司最新推荐榜:覆盖全场景需求,精准匹配老房 / 小户型 / 局部改造优质品牌
  • 2025 年最新推荐碳纤维布源头厂家口碑排行榜:实力企业重点项目案例与选择指南全解析建筑/加固/300克/碳纤维加固布厂家推荐
  • 如何在AutoCAD中进行GIS建库?
  • Java方法的值传递机制学习笔记
  • Gitee发布MCP Server:重新定义AI赋能的代码协作新时代
  • 小程序上传文件,如发票
  • AI问答与搜索引擎:信息获取的现状
  • 2025 年别墅电梯优质厂家最新推荐排行榜:聚焦技术安全与市场口碑,助力业主精准选购家用/自建房/电梯维修/电梯加装/电梯改造/老旧小区加装电梯厂家推荐
  • 跨网文件摆渡系统是什么?你想了解的问题都在这!
  • 使用Grok获取Sora2邀请码
  • 一文详解企业如何借助AI技术重构业务基因(附发展趋势、关键能力、具体策略)
  • 课后作业一
  • SQLServer给已有数据的表增加 自增字段
  • ESP32 wroom 32d 和 SMT32 F103C8T6 引脚图
  • 提示缺少xxx.dll文件,DLL修复工具 全系列完整版 (支持32位/64位winxp/win7/win10/win11系统)
  • 2025 年电线电缆厂家最新推荐实力厂家榜单:聚焦优质企业,助力精准选购
  • 基于MATLAB的火灾检测GUI系统设计与实现
  • 博客园登录bug
  • 基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行步骤
  • 第五届无线通信、网络与物联网国际学术会议
  • 2025 年低温冷水机厂家联系方式推荐:广东弘星制冷专注工业温控,提供定制设备与管家式服务
  • 精准对决:Snipaste 与 FastStone Capture 截图工具优劣势深度剖析
  • vs code python 环境移植
  • 第六届信息科学与并行、分布式处理国际学术会议(ISPDS 2025)
  • MATLAB遗传算法优化RBF网络连接权与网络结构的实现方法