go项目打包部署的完整步骤
作者:k55 发布时间:2024-05-09 09:46:54
1.go项目在window下编译简易打包
1).在windows下直接编译生成main.exe文件
在项目main.go同级目录下执行以下命令
go build main.go
2).将当前目录下的main.go打包成gotest.exe文件(在windows下可以直接执行)
在项目main.go同级目录下执行以下命令
go build -o gotest.exe main.go
2.项目在window下打包成其他系统可运行的文件
1).在window下打包成linux
在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o main-linux main.go
将abc-demo-linux文件放入linux系统任何文件夹下,chmod 773 赋予文件可执行权限,到当前文件夹下执行./abc-demo-linux
命令即可执行文件(不需要安装go,就是二进制文件)就可以直接运行了
2).在window下打包成window下可执行文件
在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
set GOOS=windows
set GOARCH=amd64
go build -o main-windows.exe main.go
3).在window下打包成mac系统可执行文件
在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
set GOOS=darwin
set GOARCH=amd64
go build -o main-mac main.go
3.项目在Mac下打包成其他系统可运行的文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.go
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o abc-demo-mac main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go
4.Linux主机编译Widows,MAC客户端
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.go
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o adc-demo-mac main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go
5.使用goreleaser多平台打包
1).安装goreleaser
goreleaser下载地址
解压缩后配置环境变量
填好环境变量后一路确定就好了
在cmd中查看版本
goreleaser -v
2).在该项目根目录执行 goreleaser init 初始化配置
在项目根目录下执行goreleaser init
命令,会生成一个.goreleaser.yaml
的文件
3).添加git 支持同时添加tag
在项目根目录下执行一下命令
要用git关联github
git init
git add .
git commit -m "go项目"
git remote add origin 自己的github地址
git push -u origin master
4).使用goreleaser打包
打包命令
goreleaser --snapshot --skip-publish --rm-dist
来源:https://blog.csdn.net/k393393/article/details/122674509


猜你喜欢
- 闭包的概念我们尝试从概念上去理解一下闭包。在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部函数引用了外部函数的变量,则可能产生闭
- 引言除非您正在对服务进行原型设计,否则您可能会关心应用程序的内存使用情况。内存占用更小,基础设施成本降低,扩展变得更容易/延迟。尽管 Go
- numpy中矩阵选取子集或者以条件选取子集,用mask是一种很好的方法简单来说就是用bool类型的indice矩阵去选择,mask = np
- vue配置文件vue.config.js配置前端代理将此代码片段命名为 vue.config.js,放在项目根目录即可仅需修改target属
- 读取列表中字典的value值list = [{"name": "推荐食谱", "1&quo
- 今天来认识一下两个我不太常用到的html标签:sub标记和sup标记。定义和用法:<sub> 标签可定义下标文本。<sup
- 序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据方
- 在 Python 2.5 中, with 关键字被加入。它将常用的 try ... except ... finally ... 模式很方便
- 刚才显示数据的时候遇到一个日期里面带T的问题,就是天数跟小时数之间出现了一个T。 表字段里面也没有这个T,后来查询度娘,是因为json处理的
- 大家好,我是煎蛋哥!上篇文章聊到了 Python 实现大 * 票自由的完整流程如何使用 Python 实现彩票自由(大乐透)和体彩大乐透类似
- 本文实例讲述了Python迭代器和生成器定义与用法。分享给大家供大家参考,具体如下:迭代器 iter()迭代器是访问集合中元素的一种方式,迭
- 插入排序插入排序是一种简单的排序算法,以数组为例,我们可以把数组看成是多个数组组成。插入排序的基本思想是往前面已排好序的数组中插入一个元素,
- 打包pyinstaller 02.py --noconsole --hidden-import PySide2.QtXml报错0:The &
- vue-loader和webpack项目配置及npm错误学习vue的同学都知道,想要生成一个vue项目,使用vue-cli脚手架工具直接生成
- 前段时间写了个比较简单的批量水印添加的python实现方式,将某个文件夹下面的图片全部添加上水印。今天正好有时间就做了一个UI应用的封装,这
- 要求安装:1.Python2.7z解压软件backup_2.py# Filename: backup_2.py'''
- 1、jsp页面,携带值跳转到新页 original.jsp var btnClick = {'click .showne
- python标记语句块使用方法,python语言和其它的编程语言有着显著的区别,那就是python对格式的要求非常苛刻,好处就是书写上简易命
- 本文实例讲述了Python3.5内置模块之time与datetime模块用法。分享给大家供大家参考,具体如下:1、模块的分类a、标准库(Py
- 一、TensorFLow完整样例在MNIST数据集上,搭建一个简单神经网络结构,一个包含ReLU单元的非线性化处理的两层神经网络。在训练神经