运维杂谈

golang 依赖、编译、部署实践

2018-12-13  本文已影响0人  akka9

最近有个 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
上一篇 下一篇

猜你喜欢

热点阅读