启用 Go Modules 功能

  • GO111MODULE=off,无模块支持
  • GO111MODULE=on,模块支持
  • GO111MODULE=auto,根据当前目录来决定是否启用 module 功能

在使用 go modules 时,GOPATH 是无意义的,不过它还是会把下载的依赖存储在 $GOPATH/pkg/mod 中,也会把 go install 的结果放在 $GOPATH/bin 中,当 modules 功能启用时,依赖包的存放位置变更为 $GOPATH/pkg 允许同一个 package 多个版本并存,且多个项目可以共享缓存的 module 文件。

# 通过 go 命令设置(推荐)
go env -w GO111MODULE=on

# or 直接导出,也可以写到 ~/.bashrc、/etc/profile、~/.zshrc 等文件中
export GO111MODULE=on

# or 临时使用(不推荐)
GO111MODULE=on go get -u github.com/stretchr/testify

# 随时确认当前 shell 的设置
go env | grep GO111MODULE

设置代理

默认的GOPROXY是 goproxy.io,可以改为国内的:

# 设置国内的代理
go env -w GOPROXY=https://goproxy.cn,direct

# 测试
time go get golang.org/x/tour

设置私有仓库

# 设置不走 proxy 的私有仓库,多个用逗号相隔
# 比如你的公司内部共享的代码,或者团队有 github enterprise 等等
go env -w GOPRIVATE=*.your-company.com,*.your-team-github.com
Last Updated:
Contributors: Bob Wang