GOPATH可以将其理解为工作目录,在这个工作目录下,通常有如下的目录结构
每个目录存放的文件,都不相同
将你的包或者别人的包全部放在 $GOPATH/src 目录下进行管理的方式,我们称之为 GOPATH 模式。
GO111MODULE
是否开启go modules模式
建议go V1.11之后,都设置为on
可以通过下面的命令来设置:
go env -w GO111MODULE=on
GOPROXY
项⽬的第三⽅依赖库的下载源地址
建议设置国内的地址
阿⾥云 https://mirrors.aliyun.com/goproxy/
七⽜云 https://goproxy.cn,direct
direct
⽤于指示 Go 回源到模块版本的源地址去抓取(⽐如 GitHub 等)
GOSUMDB
⽤来校验拉取的第三⽅库是否是完整的
默认也是国外的⽹站,如果设置了GOPROXY,这个就不⽤设置了
GONOPROXY : 通过设置GOPRIVATE即可
GONOSUMDB: 通过设置GOPRIVATE即可
GOPRIVATE: 通过设置GOPRIVATE即可
go env -w GOPRIVATE="git.example.com,github.com/aceld/zinx
表示git.example.com 和 github.com/aceld/zinx是私有仓库,不会进⾏GOPROXY下载和校验
go evn -w GOPRIVATE=“*.example.com”
表示所有模块路径为example.com的⼦域名,⽐如git.example.com 或者 hello.example.com 都不进⾏GOPROXY下载和校验
如何设置环境变量呢?
保证GO111MODULE=on
go env -w GO111MODULE=on
export GO111MODULE=on
设置在⽤户启动脚本中
需要重新打开终端或者执⾏source ~/.bashrc
在该项⽬编写源代码
如果源代码中依赖某个库(⽐如: github.com/aceld/zinx/znet)
⼿动down go get github.com/aceld/zinx/znet
⾃动down
module dhy/goTest
go 1.18
require github.com/aceld/zinx v0.0.0-20200315073925-f09df55dc746 // indirect
github.com/aceld/zinx v0.0.0-20200315073925-f09df55dc746 h1:TturbcEfboY81jsKVSQtGkqk8FN8ag0TmKYzaFHflmQ=
github.com/aceld/zinx v0.0.0-20200315073925-f09df55dc746/go.mod h1:bMiERrPdR8FzpBOo86nhWWmeHJ1cCaqVvWKCGcDVJ5M=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
我们可以对导包的请求路径进行重定向,通过replace完成:
//-replace=旧依赖版本=新依赖版本
go mod edit -replace=zinx@v0.0.0-20200306023939bc416543ae24=zinx@v0.0.0-20200221135252-8a8954e75100
go mod⽂件就会被修改
module github.com/aceld/modules_test
go 1.14
require github.com/aceld/zinx v0.0.0-20200306023939-bc416543ae24 // indirect
//当寻找到github.com/aceld/zinx v0.0.0-20200306023939-bc416543ae24依赖时,会自动重定向到zinx v0.0.0-20200221135252-8a8954e75100
replace zinx v0.0.0-20200306023939-bc416543ae24 => zinx v0.0.0-20200221135252-8a8954e75100
何处安放我们的 Go 代码
Go Modules 终极入门
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://cjdhy.blog.csdn.net/article/details/123945047
内容来源于网络,如有侵权,请联系作者删除!