golang module 管理项目包
简介
golang 在 1.11 版本中引入了新的包管理工具 go mod。包管理一直是 go 语言的痛点。
包管理的常见需求:项目依赖某个包的不同版本,依赖本地的(私有的)包等
用法
个人推荐 golang IDE:goland。上手快,功能强大,比 idea 快很多。这里用的也是 goland
题外话:go mod 的特性让 golang 越来越适应工程管理的需求。解放了对 $GOPATH 的依赖。更加注重项目本身。
进入正题:
File –> New Project –> Go Module(vgo) 在 location 处选择自己的项目路径,路径不一定需要是 $GOPATH。按需勾选 vendering。Create!
创建完之后项目名下边有 go.mod
如何在项目中定义自己需要的包,以 configs 包为例。右键项目名,新建文件夹,名为自己需要定义的包,此处示例为 configs。如果这个包是私有的,不放到公开的 github 上,main 函数以 import “webproject/configs” 导入包
如何在项目中导入第三方的包,以 gin 包为例。4.1 直接 import 不管用,报错如下:4.2 根据提示 Alt + Shift + Enter 键或点击 Sync packages。将需要的依赖写入到 go.mod 当中。
4.3 相关的依赖顺利写入到 go.mod。
第四步中可能存在 golang.org 天朝网络问题,可以用 replace 解决。我是直接用 Proxifier 解决。
总结
总的来说,使用 go mod 进行依赖管理,还是比较令人满意的。之后再看需要,补充 go mod tidy,导入其他 module 包等情形。