golang 依赖、编译、部署实践

最近有个 golang 项目要上线,做了这方面的整理。

版本

依赖管理工具有很多, glide、dep、gvendor、vgo 等等,现官方推出了go mod 的方式。
使用 go 1.11 及以后的版本,因为自带了 go mod 官方依赖管理工具。
go mod 有个好处,工程代码不用再放到 GOPATH 下面,可以放到任意目录。

新项目如何使用依赖管理

假设项目的包名为 xxapi

GO111MODULE=on go mod init xxapi
GO111MODULE=on go mod vendor

假设项目的包名为 gitlab-repo.com/group/xxapi

GO111MODULE=on go mod init gitlab-repo.com/group/xxapi
GO111MODULE=on go mod vendor

编译

GO111MODULE=on go build

常见问题

编译报错

go: error loading module requirements

CentOS 6 上报了这个错,找了半天,结果是要升级 git.
git 2.7.0,2.15.1,2.20.1 这几个版本测试无问题。 https://github.com/golang/go/issues/26594

beego 二进制程序报错 panic: you are in dev mode. So please set gopath

dev 模式下,需要设置 GOPATH 环境变量,其他模式下,不需要设置 GOPATH 环境变量。

BEEGO_RUNMODE="prod" ./xxapi
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。