go get 下载速度慢
设置代理路径
方法1 :cmd -> 打开终端
输入: go env -w GOPROXY=https://goproxy.cn,direct
方法2: 如果安装golang
打开setting -> 选择Go -> Go Modules 回到下图这个界面
勾选 Enable Go modules integration选项
输入 -> GOPROXY=https://goproxy.cn 即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y9nXI409-1635757549337)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210928132917226.png)]
go中导入第三方包时,引入问题
-
为什么 go get 的包下载到pkg/mod (GOPATH)下,而不是src(GOPATH)
因为墙的原因,很多时候下载包会很慢,通常会设置代理,设置代理开启会开启go_module功能,所以下载的包都会下载$GOPATH$/pkg/mod
-
go module是什么?
go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用 go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等 使用go module之后我们可不用将代码放置在GOPATH下了 使用 go module 管理依赖后会在项目根目录下生成两个文件 go.mod 和 go.sum。
-
如何激活go module?
1)将go升级到1.11版本以后 2)通过 GO111MODULE 可以开启或关闭 go module 工具。 GO111MODULE=off 禁用 go module,编译时会从 GOPATH 和 vendor 文件夹中查找包; GO111MODULE=on 启用 go module,编译时会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod下载依赖; GO111MODULE=auto(默认值),当项目在 GOPATH/src 目录之外,并且项目根目录有 go.mod文件时,开启 go module。 3)Windows 下开启 GO111MODULE 的命令为: set GO111MODULE=on 或者 set GO111MODULE=auto
开启之后,之后创建项目就没必要在GOPATH路径下创建项目,所有的项目依赖包都会由gomodule管理
-
常用的go mod 命令
命令 作用 go mod download 下载依赖包到本地(默认为 GOPATH/pkg/mod 目录) go mod edit 编辑go.mod文件 go mod init 初始化当前文件夹,创建go.mod文件 go mod tidy 增加缺少的包,删除无用的包 go mod vendor #将依赖转移至本地的vendor文件 -
项目中使用
5.1 创建项目
5.2 初始化module
go mod init 生成go.mod文件,项目中会出现这个文件
5.3 检测依赖
go mod tidy 该命令会检测该文件夹目录下所有引入的依赖,写入 go.mod 文件 同时此时也会生成一个go.sum 文件,用于记录每个依赖包的哈希值,在构建时,如果本地的依赖包hash值与go.sum文件中记录得不一致,则会拒绝构建。
具体go.sum和go.mod的意义和区别,感兴趣可以自行学习下
注意:这时依赖是还没有下载的
5.4 下载依赖
go mod download
5.5 新增依赖
可使用go get
添加最新版本依赖 go get github.com/xxx/xxx
添加指定版本: go get github.com/xxx/xxx@v1.6.2
添加指定版本范围: go get github.com/xxxx/xxx@’<v1.6.2’
添加指定commit的版本 git commit: go get github.com/xxxx/xxx@q2516faf3
5.5 注意
当使用go module管理包时,引入包时 “./utils” 这用相对路径形式的引入方式将会出错,此时需要改成绝对路径