go module
go module 是go官方提供的包管理工具,相比glide,dep这些包管理工具,go mod还是比较新的,目前还没有被大范围使用。本人比较喜欢尝鲜,已经在项目中尝试使用了,期间也遇到一些坑,不过目前使用下来也基本没有什么问题,下面就把使用过程和大家分享一下吧!
运行目录对比
- 不使用mod
- 只能运行在go path下面
- 使用mod
- 可运行在任何目录,不依赖go path
- 如果要在go path下运行需配置
GO111MODULE=on
环境变量
几个关键命令
- go mod init
- initialize new module in current directory
- go mod tidy
- add missing and remove unused modules
- go mod vendor
- make vendored copy of dependencies
翻译一下:
go mod init 用来将当前目录初始化成 go mod 管理的目录
go mod tidy 用来更新项目中的依赖
go mod vendor 用来将项目中的依赖包全部copy到vendor目录下,方便项目在其他没有 go mod 的环境上编译
几个坑的地方
- 运行 go mod init 会报
go: cannot determine module path for source directory
,需要在main.go中声明导入的依赖 - 本地包依赖方式,在go.mod文件中添加如下配置:
|
|