美文网首页运维杂谈
golang 依赖、编译、部署实践

golang 依赖、编译、部署实践

作者: akka9 | 来源:发表于2018-12-13 11:57 被阅读0次

    最近有个 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
    

    相关文章

      网友评论

        本文标题:golang 依赖、编译、部署实践

        本文链接:https://www.haomeiwen.com/subject/enmvhqtx.html