go module
go modulego module
官方文档
开启go module
onoffautoauto
GO111MODULE=offGOPATHvendorGO111MODULE=onGOPATHvendorgo.modGO111MODULE=auto$GOPATH/srcgo.mod
go env -w GO111MODULE=on
**Go PROXY 换成中国代理 **
go.modgo.sum
go.mod
Go.mod 文件记录了项目所有的依赖信息。
module blogger
go 1.16
require (
github.com/go-sql-driver/mysql v1.4.1
google.golang.org/appengine v1.6.1 // indirect
)
- module 用来定义包名
- Require 用来定义依赖包以及版本
- Indirect 表示间接引用
go.sum
记录是每个依赖库的版本和哈希值用于验证安全和修改
项目中的基本使用
cd. ~/xxx/yyy/test
#初始化项目
go mod init test(test是项目的名称,名字可以随便)
# 下包
go get github.com/go-redis/redis
go get github.com/go-sql-driver/mysql@v1.4.1
go mod 命令
go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit 编辑go.mod文件
go mod graph 打印模块依赖图
go mod init 初始化当前文件夹, 创建go.mod文件
go mod tidy 增加缺少的module,删除无用的module
go mod vendor 将依赖复制到vendor下
go mod verify 校验依赖
go mod why 解释为什么需要依赖
go get
go get
go get -ugo get -u=patchgo get package@version
go mod download
go tidy
运行 go tidy ,可以删除项目里没有用的依赖包
godep在Go1.5 release的版本的发布vendor目录被添加到除了GOPATH和GOROOT之外的依赖目录查找的解决方法。 查找依赖包路径的解决 当前包下的vendor目录 先上级的目录查找,直到找到scr的vendor目录 在GOPATH下面查找依赖包 在GOROOT目录下查找
dep安装方式的安装方式是:执行
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
或
go get github.com/tools/godep
# 要自己设置环境变量
//todo
参考: