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

golang编译时传递参数或注入变量值到程序中

1、使用编译参数-ldflags

可以将参数值赋值到某一个包中的变量

var version string
fmt.Println("version: " + version)

编译:go build -ldflags="-X 'voteapi/app/health/http/server.version=1.0.0'"

如果你使用了模块(module),请确保导入路径正确,也就是使用完整路径,如果路径不对,它也不会报错。

使用单引号包裹整个 -X 参数可以避免空格问题。

可以赋值多个参数:-X 'main.version=1.0.0' -X 'main.buildTime=2025-06-19'

可以使用环境变量:-X 'main.version=$VERSION' -X 'main.buildTime=$BUILDTIME'

2、go generate指令

生成随机字符串:openssl rand -base64 16

获取git版本号:git describe --tags

最终指令如下

//go:generate sh -c "echo 'package main' > version.go && echo \"var version = \\\"$(openssl rand -base64 16)\\\"\" >> version.go"

需要手动执行go generate,生成的version.go文件

package main
var version = "0Mh+gzfOKyIMpDB5m8sEsA=="

相关文章:

  • Lua 事务双写、RedisGears 异步双写、零停机索引迁移与容量预估
  • Docker Swarm
  • day43-硬件学习之ARM基础知识
  • DAY 54 python打卡
  • c++ 虚析构函数
  • idea中push拒绝,merge,rebase的区别
  • 《汇编语言:基于X86处理器》第3章 汇编语言基础
  • 【笔记】解决部署国产AI Agent 开源项目 MiniMax-M1时 Hugging Face 模型下载缓存占满 C 盘问题:更改缓存位置全流程
  • 基于物联网的智能衣柜系统设计
  • 研英语作文万能模板
  • Maven 之工程化开发核心指南:插件配置、pom 文件与依赖管理
  • 掌握Bash脚本编写:从服务启动脚本到语法精要
  • Tomcat双击startup.bat闪退的解决方法
  • 【Python进阶系列】第9篇:聊聊 Python 中常用的第三方库
  • Nacos Server 界面
  • JetBrains IDE v2025.1 升级,AI 智能+语言支持齐飞
  • 解决 Conda 玑境激活问题:缺少 `bin/activate` 文件的应对方法
  • 以太坊节点搭建私链(POA)
  • 【Mini-F5265-OB开发板试用测评】3、MDS 可编程 IP 互联模块
  • WebServer实现:muduo库的主丛Reactor架构
  • 宝山品牌网站建设/亚马逊关键词快速优化
  • 什么网站专门做批发/搭建自己的网站
  • 无锡网站建设工作室/如何创建自己的网址
  • ps做网站标签/网络营销企业案例
  • 白云区网站建设/谷歌seo网站推广怎么做优化
  • 哪个网站做香烟回收/推广衣服的软文