go module
go module 简单使用
go程序只能放在src文件中才能运行,并且依赖的所有的第三方库都放在设定GOPATH的目录下面,很不方便。
go module是Go1.11版本之后官方推出的版本管理工具。使用go module之后我们可不用将代码放置在src下了,并且可以任意切换第三方库版本。
设置环境变量
要启用go module支持首先要设置环境变量GO111MODULE,通过它可以开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是auto。
GO111MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。
GO111MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。
GO111MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,开启模块支持。
只要将设置GO111MODULE=on之后就可以使用 go module 功能了,以后就没有必要在 GOPATH 中创建项目了,并且还能够很好的管理项目依赖的第三方库信息。
Go1.11之后设置GOPROXY命令为:
export GOPROXY=https://goproxy.cn
Go1.13之后GOPROXY默认值为 https://proxy.golang.org ,但其在国内是无法访问的,所以大多自行设置GOPROXY,这里我推荐使用goproxy.cn。
go env -w GOPROXY=https://goproxy.cn,direct
使用 go module 管理依赖后会在项目根目录下生成一个go.mod文件。格式如下,require 后面是引入的第三方库和对应版本号。如想更改版本号,直接修改后执行 go mod download。
module Project
go 1.14
require github.com/garyburd/redigo v1.6.2 // indirect
常用命令
go mod download 下载依赖的module到本地(默认为$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 -u将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)
- 运行go get -u=patch将会升级到最新的修订版本
- 运行go get package@version将会升级到指定的版本号version 如果下载所有依赖可以使用go mod download命令。
简单使用
-
set GO111MODULE=on
-
SET GOPROXY=https://goproxy.cn (这是win环境下的)
export GOPROXY=[https://goproxy.cn](https://goproxy.cn/)(这是mac环境下的) -
go mod init [库名]// 初始化项目(如果你是初始化项目直接go mod init就OK) -
在目录文件下会生成 go.mod ,go.mod 里面包含了所需要的第三方库。
-
可能会出现编译器报错,但却能正常编译的情况(goland配置问题,解决方法见图片--->增加镜像)

-
go get下载第三方库 -
修改第三方库的版本号直接去go.mod文件修改然后执行
go mod download

浙公网安备 33010602011771号