最近有个 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
网友评论