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

中山网站建设乐云seo模板中心美食网站开发详细设计

中山网站建设乐云seo模板中心,美食网站开发详细设计,怎么做报名网站,政务公开和网站建设本文介绍如何在构建时使用ldflags选项给Golang应用程序注入变量#xff0c;用于给Go可执行文件增加版本标识或GIT提交摘要等信息。 应用程序的版本信息 我们首先查看Docker Cli 包含的提交信息#xff1a; docker version 返回结果#xff1a; Server: Docker Engine - Co… 本文介绍如何在构建时使用ldflags选项给Golang应用程序注入变量用于给Go可执行文件增加版本标识或GIT提交摘要等信息。 应用程序的版本信息 我们首先查看Docker Cli 包含的提交信息 docker version 返回结果 Server: Docker Engine - CommunityEngine:Version: 23.0.1API version: 1.42 (minimum version 1.12)Go version: go1.19.5Git commit: bc3805aBuilt: Thu Feb 9 19:46:56 2023OS/Arch: linux/amd64Experimental: false 可以看到包含了 Git commit: bc3805a 信息这是git最后提交的版本信息。 那为什么要增加版本信息呢通过该信息可以很方便识别用户正在使用的版本以及已使用的时长。 Git提交日志 在进入主题之前让我们思考下在构建时注入什么信息有意义它可以是任何信息如提供WEB服务的主机名称或更常见的GIT最后提交ID。下面简单演示下如何获取GIT最后提交日志的ID。 $ git init echo lets work with git readme git add . git commit -m initial Initialized empty Git repository in C:/Users/86137/Desktop/test/.git/ warning: LF will be replaced by CRLF in readme. The file will have its original line endings in your working directory [master (root-commit) b446263] initial 1 file changed, 1 insertion() create mode 100644 readme $ ls readme $ cat readme let’s work with git $ echo lets keep working readme git add . git commit -m first update warning: LF will be replaced by CRLF in readme. The file will have its original line endings in your working directory [master b7a900c] first update 1 file changed, 1 insertion() $ cat readme let’s work with git let’s keep working 现在我们查看GIT两次提交日志 $ git log commit b7a900cdbb23493c4d48d009173daf9eb4b4e9d0 (HEAD - master) Author: test testgmail.com Date: Sat Mar 11 15:30:16 2023 0800 first updatecommit b446263cf7af8f62906587cbe97029df575ae592 Author: test testgmail.com Date: Sat Mar 11 15:29:34 2023 0800 initial通过下面命令获取最后的提交ID $ git rev-list --all -1 b7a900cdbb23493c4d48d009173daf9eb4b4e9d0 $ export GIT_COMMIT$(git rev-list --all -1) echo $GIT_COMMIT b7a900cdbb23493c4d48d009173daf9eb4b4e9d0 示例Go应用 让我们使用简单的Hello World吧 package mainimport (fmt )func main() {fmt.Println(Hello world) }为了传入构建时变量需要main包中拆改那就一个变量这里命名为GitCommit: package mainimport (fmt )var GitCommit stringfunc main() {fmt.Printf(Hello world, version: %s\n, GitCommit) }编译并运行 $ go build main.go ./main.exe Hello world, version: 版本信息为空下面开始注入版本给GitCommit变量。 使用-ldflags 现在我们给 go build命令增加选项传入git最后提交ID作为版本信息先看看提交情况 $ git log commit 1111c009f3caf4730bd31a4226d5a36e4b5a0083 (HEAD - master) Author: test testgmail.com Date: Sat Mar 11 15:53:57 2023 0800增加GIT_COMMIT变量commit b7a900cdbb23493c4d48d009173daf9eb4b4e9d0 Author: test testgmail.com Date: Sat Mar 11 15:30:16 2023 0800first updatecommit b446263cf7af8f62906587cbe97029df575ae592 Author: test testgmail.com Date: Sat Mar 11 15:29:34 2023 0800initial ldflags的语法 go build -ldflags-X package_path.variable_namenew_value可以一次性指定多个变量。 现在利用前面的知识增加最后提交ID: go build -ldflags -X main.GitCommit$(git rev-list --all -1) main.go 执行程序可以看到版本信息 $ ./main.exe Hello world, version: 1111c009f3caf4730bd31a4226d5a36e4b5a0083 当然我们还可以增加多个变量 package mainimport (fmt )var GitCommit string var BuildTime string var BuildUser stringfunc main() {fmt.Printf(Hello world, version: %s\n, GitCommit)fmt.Println(build.Time:\t, BuildTime)fmt.Println(build.User:\t, BuildUser) }go build -ldflags -X main.GitCommit$(git rev-list --all -1) -X main.BuildUser$(id -u -n) -X main.BuildTime$(date %F_%T) main.go 运行程序 Hello world, version: 1111c009f3caf4730bd31a4226d5a36e4b5a0083 build.Time: 2023-03-11_16:36:50 build.User: 86137 压缩可执行文件 我们还可以利用 -ldflags “-s -w” 选项压缩可执行文件 go build -ldflags “-X main.GitCommit(gitrev−list−−all−1)−X′main.BuildUser(git rev-list --all -1) -X main.BuildUser(gitrev−list−−all−1)−X′main.BuildUser(id -u -n)’ -X ‘main.BuildTime$(date %F_%T)’ -s -w” main.go 对比编译前后文件的大小 # 压缩前大约1.9M -rwxr-xr-x 1 86137 197609 1965056 3月 11 16:37 main.exe*# 压缩后为大约1.3M -rwxr-xr-x 1 86137 197609 1338880 3月 11 16:58 main.exe*总结 本文介绍了git提交日志如何在构建时给Go程序增加信息如GIT提交日志、编译时间等信息。最后还顺便介绍了压缩可执行文件的选项。
http://www.dnsts.com.cn/news/14783.html

相关文章:

  • 中建南方建设集团网站图书网站建设策划书
  • 网站搜索引擎优化推广有什么平台可以发布推广信息
  • 网站开发开题报告ppt怎样建设购物网站
  • 厦门网站建设公司大型网站开发项目合同
  • 苏州嘉盛建设工程有限公司网站二级域名大全
  • 学网站建设需要用哪几个软件软件商城官网
  • 网站图片有什么要求吗安卓优化大师最新版下载
  • 有哪些做的比较精美的网站网站建设时如何选择合适的服务器
  • 搞笑网站模板网页游戏排行榜前十2023
  • 网站加速器免费一流的铁岭做网站公司
  • 八亿免费wap自助建站网页制作题用什么软件
  • html网站设计作品婚纱礼服外贸网站
  • 网站手机模板和pc模板要分开做怎么停止网站
  • 高质量的佛山网站模板动漫设计就业率高吗
  • 动易学校网站模板淘宝网的网站设计特色
  • 小型的做网站公司从哪里接的项目苏州seo关键词优化外包
  • 跟我学做纸艺花网站wordpress主机购买
  • 内蒙古住房与城乡建设部网站qq邮箱怎么在手机qq上打开wordpress
  • 深圳珠宝网站设计影楼网站推广
  • 国内优秀网站案例广告牌模板图片
  • 设置网站语言wordpress 自动链接
  • 成都哪家做网站做的好学校网站建设评比
  • 南昌 定制网站网络游戏对青少年的危害
  • 如何上传网站产品包装设计创意
  • 建站工具 开源自己开一个网站要多少钱
  • 网站建设公司赚钱株洲网站建设优化
  • 网站建设淘宝客模板下载wordpress 分类目录seo插件
  • 云南工程建设总承包公司网站电商网站建设概念
  • 网站开发方案ppt有哪些程序做的网站
  • 佛山企业手机网站建设做淘宝图的素材搜索网站