golang module 开发基本流程
背景
目前在mac上开发, golang版本为 go version go1.12.5 darwin/amd64
需要提前设置全局变量
1  |  | 
这是自己总计的开发流程, 可能跟其他地方描述有出入,需灵活参考
操作流程
创建module项目
即初始化 仓库, 我的申请仓库地址
https://github.com/l1905/golang_module_demo
本地clone 下来,进行项目初始化
项目初始化不需要在$GOPATH目录中, 任意其他目录即可
1  |  | 
这里的github.com/l1905/golang_module_demo 对应我们的包名,也是我们的github地址
这里会新建 go.mod文件,  大致输出如下
1  |  | 
初始化文件目录, 引入三方依赖包。
1  |  | 
speak.go 文件中 使用第三方包
1  |  | 
通过 go build  或者 go test  ,引入三方包
1  |  | 
这时候 go会自动帮我们把三方包下载到 $GOPATH目录中, 具体路径为 ` $GOPATH/pkg/mod`, 目录内容如下
1  |  | 
GOLANG设置
如果goland需要识别 module,  则需要去 Preferences>Go->Go Modules(vgo) 勾选,启用 gomodule, 否则的话, 无法引入本地的包, main.og 如下
1  |  | 
可以将依赖包 都到到当前文件夹vendor中,
1  |  | 
如果依赖vendor目录中的三方包, 则需要 编译时 指定
1  |  | 
开发完成,提交到 github上, 在github上打tag v0.0.1
下面主要来测试怎么调整依赖包
新建测试项目(golang_module_test), 引入我们刚才的包(golang_module_demo)
1  |  | 
通过 go mod 查看所有版本
1  |  | 
我们发现已经有新的版本发布, 我们指定更新这个包文件
1  |  | 
发现包依赖文件已经调整,
重点:go get 默认拉取latest 最新 V1.x.x 或者 最新的 v0.x.x, 不会自动拉取v2, 或者 v3:
更新包 以及间接包到最新版本
1  |  | 
列出所有的依赖包
对比同样可以参考 go.mod
1  |  | 
清除无用依赖
1  |  | 
引入代理 国内源
1  |  | 
参考文章
- https://www.4async.com/2019/03/using-go-modules/
 - https://blog.golang.org/using-go-modules
 - https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away