Golang学习实战笔记-基础 > golang介绍以及安装
gomod 使用以及如何解决国外资源下载不了的问题

gomod 官方文档:

https://github.com/golang/go/wiki/Modules#how-to-prepare-for-a-release


使用gomod 需要 golang的版本大于等于 1.11 , 还需要配置环境变量 GO111MODULE=on.


linux 

export GO111MODULE=on


window 可以在环境变量中添加 GO111MODULE  设置变量值为 on



常用命令:

go mod  download 下载项目中依赖的其他库

go mod  vendor 将依赖库放到go.mod 同级vendor目录下

go mod  tidy 整理项目


解决不能下载国外资源问题:

解决办法1 配置 GOPROXY代理:

使用代理 详细参考 https://goproxy.io/

# Enable the go modules feature
export GO111MODULE=on
# Set the GOPROXY environment variable
export GOPROXY=https://goproxy.cn,direct 

# 当有下载私有库的使用将私有库加入到GOPRIVATE变量中否则会出现私有库下载不下来的问题
export GOPRIVATE=github.com/company

# 如果使用github 需要添加本地的私钥到github上面同时 配置git强制使用ssh方式下载
git config --global url."git@github.com:".insteadOf "https://github.com/"

解决办法2 在go.mod 文件中使用 replace 替换国外镜像为国内镜像

replace golang.org/x/tools => github.com/golang/tools v0.0.0-20190805222050-c5a2fd39b72a
replace golang.org/x/net => github.com/golang/net v0.0.0-20190724013045-ca1201d0de80
replace golang.org/x/sync => github.com/golang/sync v0.0.0-20190423024810-112230192c58
replace golang.org/x/sys => github.com/golang/sys v0.0.0-20190804053845-51ab0e2deafa
replace golang.org/x/crypto => github.com/golang/crypto v0.0.0-20190701094942-4def268fd1a4
replace golang.org/x/text => github.com/golang/text v0.3.2
replace google.golang.org/grpc => github.com/grpc/grpc-go v1.2.1-0.20190730171453-92635fa6bffd
replace golang.org/x/lint => github.com/golang/lint v0.0.0-20190409202823-959b441ac422
replace golang.org/x/oauth2 => github.com/golang/oauth2 v0.0.0-20190604053449-0f29369cfe45
replace cloud.google.com/go => github.com/googleapis/google-cloud-go v0.43.1-0.20190806212233-f89b6325d273
replace google.golang.org/appengine => github.com/golang/appengine v1.6.2-0.20190801181406-fb139bde60fa
replace google.golang.org/genproto => github.com/google/go-genproto v0.0.0-20190801165951-fa694d86fc64
replace golang.org/x/exp => github.com/golang/exp v0.0.0-20190731235908-ec7cb31e5a56
replace golang.org/x/time => github.com/golang/time v0.0.0-20190308202827-9d24e82272b4
replace google.golang.org/api => github.com/googleapis/google-api-go-client v0.7.1-0.20190805211801-b7b1a549a9ef
replace golang.org/x/mod => github.com/golang/mod v0.1.0
replace golang.org/x/image => github.com/golang/image v0.0.0-20190802002840-cff245a6509b
replace golang.org/x/mobile => github.com/golang/mobile v0.0.0-20190806162312-597adff16ade
replace gopkg.in/jcmturner/gokrb5.v7 => github.com/jcmturner/gokrb5 v7.2.4-0.20190413090910-7b6b2f54b7fd+incompatible


终极大招:

翻墙访问