Go包管理最佳实践(2019/3)

平仄_pingze · · 3790 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Golang的包管理经过了多种工具的演变,从go vendor,到godep
),再到dep
这里使用的是从go v1.11开始支持的go Modules

Go Modules具有一些优点:

  • 不必须将项目目录放在GOPATH中
  • 不使用vendor目录,而是统一安装到$GOPATH/pkg/mod/cache
  • build/run时,自动析出项目import的包并安装

使用方法:

  1. 初始化
    在已有的项目目录中,使用go mod init <包名>初始化。
    包名通常类似github.com/golang/dep这种格式。
    如果包内有自引用,则包名需要和包内自引用名相同,才能正常导入。
    这时项目中生成一个go.mod文件。

  2. build/run
    直接执行go build/run,会发现项目涉及的包被自动安装了。
    这时项目中新增go.sum文件。原来的go.mod中增加了依赖项。

注意:

国内使用时,golang.org/x/crypto等包可能装不上。
可以设置Go Module Proxy解决:

export GOPROXY="https://athens.azurefd.net"

(这里使用了微软提供的代理)

示例

通过这种方式,很容易运行起来一个互联网上的Go项目。比如:

git clone https://github.com/snowlyg/IrisApiProject.git
cd IrisApiProject/
go mod init IrisApiProject
go build .
./IrisYouQiKangApi.exe~

其它

有些库使用了cgo,需要gcc编译器。
如果是在windows下,需要自行安装gcc。注意,golang只支持mingw,不能使用cygwin。

对于x64 windows:

  1. 下载mingw-w64
  2. 安装之。注意选择 Architecture=x86_64, Threads=posix, Exception=seh。
  3. 配置安装目录下的bin目录到环境变量。

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:平仄_pingze

查看原文:Go包管理最佳实践(2019/3)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3790 次点击  ∙  1 赞  
加入收藏 微博
1 回复  |  直到 2019-03-21 10:32:21
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传