Go mod 入门

Go mod 入门

一、why use go mod

1、go mod出现之前,遇到的问题:

1)、代码开发必须在 $GOPATH 的src目录下,在别处新建项目将无法编译运行。

2)、对于项目中需要引入的包,必须手动下载,手动维护。

3)、依赖包没有版本号,对于进行过Java开发并使用过maven的开发人员将会感到十分不适。

2、go mod 是如何解决的?

​ 在golang 1.11以后,go开始支持go mod。go mod 引入了模块的概念,模块是相关Go包的集合。modules是源代码交换和版本控制的单元。

​ go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

二、使用步骤

1、确认go版本至少为1.11

golang 版本查看命令:

go version
2、配置go mod

go配置命令:

# 开启go mod
go env -w GO111MODULE=on
# 设置代理
go env -w GOPROXY=https://goproxy.cn 

​ 关于 GO111MODULE值的解释:

GO111MODULE 有三个值:off, on和auto(默认值)。

GO111MODULE=off : go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on : go命令行会使用modules,而一点也不会去GOPATH目录下查找。
GO111MODULE=auto : 默认值,go命令行将会根据当前目录来决定是否启用module功能。

​ 当modules功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的 module

3、go mod 命令解释

go mod 有以下命令:

命令说明
downloaddownload modules to local cache(下载依赖包)
editedit go.mod from tools or scripts(编辑go.mod)
graphprint module requirement graph (打印模块依赖图)
verifyinitialize new module in current directory(在当前目录初始化mod)
tidyadd missing and remove unused modules(拉取缺少的模块,移除不用的模块)
vendormake vendored copy of dependencies(将依赖复制到vendor下)
verifyverify dependencies have expected content (验证依赖是否正确)
whyexplain why packages or modules are needed(解释为什么需要依赖)

比较常用的是 init,tidy, edit

使用示例:

go mod tidy

三、使用示例

1、初始化
#在任意目录下创建项目文件夹
mkdir go-mod-demo
#进入文件夹
cd go-mod-demo
#执行go mod 初始化命令
go mod init
2、引入依赖

1)、在import关键字后声明需要的包,执行go mod命令:

go mod tidy

执行代码前
执行命令后

执行命令后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值