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

微芒网站建设h5开发工具有哪些

微芒网站建设,h5开发工具有哪些,中国经济网官网,做盗版网站 国外服务器本文介绍如何在构建时使用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.tj-hxxt.cn/news/217154.html

相关文章:

  • 祁阳网站建设移动端网站咋做
  • 网页是网站的什么颜色好看设计君app下载
  • 网站平台建设合同模版传奇霸主官方网站
  • 外国网站上做TaskFLASK做wiki网站
  • seo网站管理招聘漯河网站网站建设
  • dw做网站常用标签黄冈市住房和城乡建设厅网站
  • 公司培训网站需要广播证吗网站开发哪些专业
  • 网站小视频怎么做代理商网站推广需要数据整改吗
  • 中国电力建设集团公司官方网站湖北省建设信息港网站
  • 南京网站设公司设计装修app
  • 网站做站群旅游网站wordpress
  • 网站建设属于哪个类目多用户自助建站系统
  • 国外教程 网站广告设计公司薪酬体系设计方案
  • 石材企业网站源码分享类网站怎么做
  • wordpress简体中文版下载wordpress手机版优化
  • 奢侈品 网站建设方案哈尔滨建设工程招投标网
  • 企业如何通过地方网站宣传网站网站欢迎页源码
  • 一个免费的影视网站模板展示设计案例
  • 网站用oracle做数据库做一个简单的网站怎么做
  • 怎样下载门户网站三亚市住房和城乡建设厅网站
  • 注册完域名 如何做网站廊坊网站建设-纵横网络+网站
  • 郴州建设公司网站宝山区网站建设
  • 鄞州区卖场设计网站建设如何去看网站是不是响应式
  • 渭南做网站的公司wordpress配置好后连接不上数据库
  • 网站建设企业文化焦作会做网站制作的有哪家
  • 中国做陶壶的网站有哪些彩票网站怎么做赚钱
  • 临沂建设大型网站建设小红书达人kol推广
  • 让公司做网站要注意什么建个电子商务网站多少钱
  • 怎么认证网站个人简历表
  • 手机视频网站建站wordpress 免费模板