美文网首页Go
Go包管理最佳实践(2019/3)

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

作者: 平仄_pingze | 来源:发表于2019-03-20 10:03 被阅读10次

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目录到环境变量。

相关文章

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

    Golang的包管理经过了多种工具的演变,从go vendor,到godep),再到dep。这里使用的是从go v...

  • 变量的基本类型与零值 golang

    最佳实践规范 go程序编写规范: 首行命名这个文件属于哪个包 往下再导入其他包 定义常量 定义全局变量 定义结构 ...

  • Go语言版本控制及包依赖管理

    传统Go构建以及包依赖管理 Go在构建设计方面深受Google内部开发实践的影响,比如go get的设计就深受 G...

  • VsCode Go插件配置最佳实践指南

    VsCode Go插件配置最佳实践指南 VsCode Go插件工作原理 VsCode Go的正确安装方式 VsCo...

  • 关于go module

    2020.04.29 更新 =======关于 goland 使用 go module 的最佳实践,参见https...

  • Go 语言最佳实践

    指导原则 a) 简单性 b) 可读性 c) 生产力 标识符 a) 选择标识符是为了清晰,而不是简洁...

  • Golang io reader writer

    推荐阅读Go语言小贴士1 - io包Go语言小贴士2 - 协议解析Go语言小贴士3 - bufio包 一、《GO语...

  • Jira 权限配置最佳实践 - 项目组成员权限管理

    Jira 权限配置最佳实践 - 项目组成员权限管理 参考 Jira字段配置最佳实践[https://www.cnb...

  • Go语言代码结构

    包 每个Go源代码文件的开头都是一个package声明,表示该Go代码所属的包。GO语言中是通过包来对代码进行管理...

  • go http 包练习

    参见:下载包 设置代理妈的,下载包有时能下,有时候就卡住。手动安装包使用 go module 管理包 go-mod...

网友评论

    本文标题:Go包管理最佳实践(2019/3)

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