go module是golang自带的依赖管理库。可以把一个项目或目录下的所有依赖整理成一个go.mod文件。
使用go module就不要求go的文件都放在src下。
开启go module和中国代理
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
go module的使用
- go mod init
到项目目录下执行,会出现一个go.mod文件
- go mod tidy
检查该目录下所有引用的依赖,写入go.mod
- go mod download
将依赖下载本地,会先放到go/pkg下
- go mod vendor
将刚刚下载的依赖转到该目录下的vendor目录下
更新依赖
go mod tidy
go mod download
go mod vendor
go module使用本地模块
首先在被引用的本地项目下也go mod init/tidy/download/vendor
然后在本项目下的go.mod文件中加入:
require (
my/sdk_2chains/solo_0 v1.0.0-rc1 //被引用项目module是什么名字,就用什么
my/sdk_2chains/solo_1 v1.0.0-rc1
)
replace my/sdk_2chains/solo_0 => /home/wwq/go/src/my/sdk_2chains/solo_0 //注意此处以root开始或./或../
replace my/sdk_2chains/solo_1 => /home/wwq/go/src/my/sdk_2chains/solo_1
就可以使用本地的module了
引用module
引用module时可以直接
import moduleName/pkgName
被引用module更新
被引用module更新后,引用module可能会没有发现更新(可能是我刚学还没弄对),
则删掉go.mod,go.sum,重新go mod init/tidy/download/vendor即可。