go项目打包部署的完整步骤

 更新时间:2022年09月07日 11:25:04   作者:k55  
之前断断续续的接触到项目部署,一直没有详细的了解部署,于是最近就好好的专研一下项目的部署,下面这篇文章主要给大家介绍了关于go项目打包部署的相关资料,需要的朋友可以参考下

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

总结

到此这篇关于go项目打包部署的文章就介绍到这了,更多相关go项目打包部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解如何利用GORM实现MySQL事务

    详解如何利用GORM实现MySQL事务

    为了确保数据一致性,在项目中会经常用到事务处理,对于MySQL事务相信大家应该都不陌生。这篇文章主要总结一下在Go语言中Gorm是如何实现事务的;感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助
    2022-09-09
  • 教你一招完美解决vscode安装go插件失败问题

    教你一招完美解决vscode安装go插件失败问题

    VSCode是我们开发go程序的常用工具,但是安装VSCode成功后,创建一个.go文件居然提示错误了,所以下面下面这篇文章主要给大家介绍了如何通过一招完美解决vscode安装go插件失败问题的相关资料,需要的朋友可以参考下
    2022-07-07
  • Golang中下划线(_)的不错用法分享

    Golang中下划线(_)的不错用法分享

    golang中的下划线表示忽略变量的意思,也没有产生新的变量,但是后面的表达式依然会被执行,本文为大家整理了golang中下划线的一些不错的用法,需要的可以参考下
    2023-05-05
  • Golang项目搭配nginx部署反向代理负载均衡讲解

    Golang项目搭配nginx部署反向代理负载均衡讲解

    这篇文章主要为大家介绍了Golang项目搭配nginx部署正反向代理负载均衡讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Golang实现不被复制的结构体的方法

    Golang实现不被复制的结构体的方法

    sync包中的许多结构都是不允许拷贝的,因为它们自身存储了一些状态(比如等待者的数量),如果你尝试复制这些结构体,就会在你的 IDE中看到警告,那这是怎么实现的呢,下文就来和大家详细讲讲
    2023-03-03
  • Golang中的错误处理深入分析

    Golang中的错误处理深入分析

    Go错误处理类似C语言,没有提供任何异常,以及类java语言使用的try/catch异常处理机制。Go异常处理仅简化为预定义的Error类型,Go没有提供异常处理机制,不能抛出类似许多其他语言的异常。相反,Golang集成了新的错误处理机制,如panic和recovery
    2023-01-01
  • Golang WebView跨平台的桌面应用库的使用

    Golang WebView跨平台的桌面应用库的使用

    Golang WebView是一个强大的桌面应用库,本文介绍了Golang WebView的特点和使用方法,并列举示例详细的介绍了其在实际项目中的应用,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Golang连接池的几种实现案例小结

    Golang连接池的几种实现案例小结

    这篇文章主要介绍了Golang连接池的几种实现案例小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Go结构体SliceHeader及StringHeader作用详解

    Go结构体SliceHeader及StringHeader作用详解

    这篇文章主要为大家介绍了Go结构体SliceHeader及StringHeader作用的功能及面试官爱问的实际意义详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Golang中http包的具体使用

    Golang中http包的具体使用

    Go语言内置的net/http包十分优秀,提供了http客户端和服务器的实现,本文主要介绍了Golang中http包的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05

最新评论