go mod - yaokun123/php-wiki GitHub Wiki

一、什么是go mod

go mod是Go语言的模块管理工具,可用来代替传统的GOPATH。

注: 要使用go mod,必须将golang升级到1.11版本以上

二、go mod和GOPATH的区别有哪些?

go mod的代码开发不局限于某一个目录,GOPATH的代码开发必须在GOPATH的src目录下

go mod的依赖无需手动管理,可执行一条命令后自动管理依赖,GOPATH的包依赖需要一个一个解决

go mod在使用之前需要先开启,默认是没有开启的,GOPATH不需要特别设置,只要进入到src目录下就可以进行开发

三、如何配置开启go mod

go env -w GOBIN=/usr/local/go/bin              #配置下go bin
go env -w GO111MODULE=on                       #开启go mod
go env -w GOPROXY=https://goproxy.cn,direct    #七牛云代理

GO111MODULE有三个值:off, on和auto(默认),说明如下:
GO111MODULE=off,关闭go mod,寻找依赖包通过旧版本的vendor目录或者GOPATH目录来查找
GO111MODULE=on,开启go mod,寻找依赖包不会去GOPATH目录下查找
GO111MODULE=auto,默认值,go将会根据当前目录来决定是否启用module功能

四、通过go mod管理项目

1、首先在服务器上任意位置创建演示项目demo。>mkdir demo
2、进入项目demo中,初始化项目。>cd demo >go mod init demo
    - 初始化后,在项目目录下生成了go.mod文件,文件内容包含模块名和go的版本信息
3、go mod download    // 下载 go.mod 文件中指明的所有依赖,使用此命令来下载指定的模块
4、go mod tidy        // 整理现有的依赖,使用此命令来下载指定的模块,并删除已经不用的模块

五、IDEA开启go mod支持

设置中选择Go>Go Modules

勾选 Enable Go modules Integration

Environment 设置为export GOPROXY=https://goproxy.io