当前位置:网站首页>Packaging and deployment of go projects
Packaging and deployment of go projects
2022-08-02 06:13:00 【m0_67401228】
1.go project is compiled and packaged easily under window
1). Directly compile and generate the main.exe file under windows
Execute the following command in the same level directory of the project main.gogo build main.go

2). Package main.go in the current directory into a gotest.exe file (can be executed directly under windows)
InExecute the following command in the same level directory as project main.gogo build -o gotest.exe main.go

9294afd259b12.png)
2. The project is packaged under the window into a file that can be run by other systems
1).Package it into linux under window
In the same level directory of the project main.go, execute the following commands one by one
set CGO_ENABLED=0set GOOS=linuxset GOARCH=amd64go build -o main-linux main.go
Put the abc-demo-linux file into any folder of the linux system, chmod 773 to give the file executable permission, and execute the ./abc-demo-linux command in the current folder.The executable file (no need to install go, just a binary file) can be run directly
2). Package it into an executable file under the window.
In the same level directory of the project main.go, execute the following commands one by one
set CGO_ENABLED=0set GOOS=windowsset GOARCH=amd64go build -o main-windows.exe main.go
3). Package it into a mac system executable file under the window.
In the same level directory of the project main.go, execute the following commands one by one
set CGO_ENABLED=0set GOOS=darwinset GOARCH=amd64go build -o main-mac main.go
3. The project is packaged into a file that can be run by other systems under Mac
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.goCGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o abc-demo-mac main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go4.Linux host compile Widows,MAC client
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.goCGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o adc-demo-mac main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go5. Use goreleaser for multi-platform packaging
1).Install goreleaser
goreleaser download address
Configure environment variables after decompression

After filling in the environment variables, all the way is OK
View version in cmdgoreleaser -v
2). Execute the goreleaser init initialization configuration in the project root directory
Execute the goreleaser init command in the project root directory, and a .goreleaser.yamlfile


3).Add git support and add tags at the same time
Execute the following command in the project root directory
Use git to associate github
git initgit add .git commit -m "go project"git remote add origin own github addressgit push -u origin master4).Packaging with goreleaser
Packaging commandgoreleaser --snapshot --skip-publish --rm-dist
Let me introduce myself first. The editor graduated from Shanghai Jiaotong University in 2013. I worked in a small company and went to big factories such as Huawei and OPPO. I joined Alibaba in 2018, until now.I know that most junior and intermediate java engineers want to upgrade their skills, they often need to explore their own growth or sign up to study, but for training institutions, the tuition fee is nearly 10,000 yuan, which is really stressful.Self-learning that is not systematic is very inefficient and lengthy, and it is easy to hit the ceiling and the technology stops.Therefore, I collected a "full set of learning materials for java development" for everyone. The original intention is also very simple. I hope to help friends who want to learn by themselves but don't know where to start, and at the same time reduce everyone's burden.Add the business card below to get a full set of learning materials
边栏推荐
- Redis常见题型
- MySQL String Concatenation - Various String Concatenation Practical Cases
- pg数据库报错问题,有懂的吗
- Android studio connects to MySQL and completes simple login and registration functions
- 21天学习挑战赛安排
- ApiPost is really fragrant and powerful, it's time to throw away Postman and Swagger
- MySQL 5.7 upgrade to 8.0 detailed process
- H5接入支付流程-微信支付&支付宝支付
- Mysql common commands
- 物联网通信协议全解析
猜你喜欢

数据湖:流计算处理框架Flink概述

MySQL安装教程

Google notes cut hidden plug-in installation impression

【C语言】LeetCode26.删除有序数组中的重复项&&LeetCode88.合并两个有序数组

MySQL如何对SQL做prepare预处理(解决IN查询SQL预处理仅能查询出一条记录的问题)

系统(层次)聚类

Android studio connects to MySQL and completes simple login and registration functions

认识CAN光纤转换器的光纤接口和配套光纤线缆

MySQL 5.7详细下载安装配置教程

MySQL 多表关联一对多查询实现取最新一条数据
随机推荐
leetcode 665. Non-decreasing Array 非递减数列(中等)
mysql 存储过程详解
MySQL 灵魂 16 问,你能撑到第几问?
物联网通信协议全解析
2021年软件测试面试题大全
Towhee 每周模型
牛客-TOP101-BM41
系统(层次)聚类
apisix-Getting Started
MySql将一张表的数据copy到另一张表中
MySQL安装教程
MySql copies data from one table to another table
mysql练习题
MP更新操作方式
Google notes cut hidden plug-in installation impression
Detailed explanation of the software testing process (mind map) of the first-tier manufacturers
MySQL导入sql文件的三种方法
Matlab paper illustration drawing template No. 41 - bubble chart (bubblechart)
interrupt()、interrupted()和isInterrupted()你真的懂了吗
165.比较版本号