Go项目包管理方法
企业级Go项目包管理方法
Go包管理困境
- 没有统一的包管理方式
- 包之间的依赖关系很难维护
- 如果同时需要一个包的不同版本,很麻烦
尝试解决
- godep、govendor、glide
- 未彻底解决GOPATH问题
- 使用起来麻烦
Go Modules
- 本质上Go包就是一个项目的源码
- go mod作用:将Go包和Git项目关联起来
- Go包的版本就是git项目的Tag
- go mod解决:需要哪个git项目的什么版本
使用Modules
项目地址
- github.com/Jeffail/tunny
1 |
|
Github无法访问
- 使用goproxy.cn作为代理
1 |
|
使用本地文件替代
- go.mod 文件追加
1 |
|
- go vendor 缓存到本地
1 |
|
创建Go Module
- 删除本地go.mod
1 |
|
推送至代码仓库
增加新版本,在仓库打新Tag
Go项目包管理方法
http://example.com/2022/12/18/Go项目包管理方法/