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

参考: