gomod 子目录_一文搞定GoMod

本文详细介绍了Go Modules的使用,包括子目录管理、模块初始化、包管理、go.mod和go.sum文件操作,以及如何引用第三方和自定义库。通过设置GO111MODULE和GOPROXY环境变量,理解Go Modules的原理和在中国环境下如何配置代理。同时,讲解了如何更改依赖版本,确保项目正常编译和运行。
摘要由CSDN通过智能技术生成
0 1 Go Mod包管理教程 随着 go 1.11 的发布,go 官方引入了 go module 来解决依赖管理问题,go module 被集成到原生的 go cmd 中。
export GO111MODULE=on
02Go Mod与GoPath 现在 modules 机制仍在早期阶段,所以 golang 提供了一个环境变量 “GO111MODULE”,默认值为 auto。

如果当前目录里有 go.mod 文件,就使用 go modules,否则使用旧的 GOPATH 和 vendor 机制,因为在 modules 机制下 go get 只会下载 go modules,这一行为会在以后版本中成为默认值,这里我们保持 auto 即可,如果你想直接使用 modules 而不需要从 GOPATH 过度,那么把 “GO111MODULE” 设置为on。

modules 和传统的 GOPATH 不同,不需要包含例如 src,bin 这样的子目录,一个源代码目录甚至是空目录都可以作为 module,只要其中包含有 go.mod 文件。

03关于$GOPROXY

使用

当我们使用 go 的时候,go 默认会直接从代码库中去下载所需的相关依赖,GOPROXY 这个环境变量可以让我们控制自己从哪里去下载源代码

如果 GOPROXY 没有设置,go 会直接从代码库下载相关依赖代码。如果你像下面这样设置了这个环境变量,那么你就会通过 goproxy.io 下载所有的源代码,设置 proxy 的命令如下:

export GOPROXY=https://goproxy.io

你可以通过置空这个环境变量来关闭 proxy,命令如下:

export GOPROXY=

原理

以前执行 go get golang.org/x/net 时,那么 net 代码库会下载到本地 GOPATH 中,以后有任何项目引用到了 golang.org/x/net 都不会再去下载这个代码库,因为本地 GOPATH 已经有了,哪怕版本不对,golan

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值