Go mod 最简单的理解和使用

原创:转载请标明出处:
https://blog.csdn.net/ming2316780/article/details/90370913
本文出自:【iGoogle.ink的博客】

Go mod 最简单的理解和使用

研究了一下Go mod 发现还真是挺好用的,既可以管理包的版本问题,又解决了有些包被墙无法下载的困扰

Go mod 的三种开启模式

  • GO111MODULE
    • on:支持Go mod模式
    • off:不支持Go mod模式
    • auto (默认模式):如果代码在gopath下,则自动使用gopath模式;如果代码不在gopath下,则自动使用GO mod模式。
  • 开启方式:
    • Windows中,在环境变量中添加变量即可,变量名为 GO111MODULE ,变量值可设置为 onoffauto
    • Linux中,只要在 /etc/profile 中添加 export GO111MODULE=onexport GO111MODULE=offexport GO111MODULE=auto。然后执行 source /etc/profile 刷新即可。

Go mod 的使用

1、引入.mod文件

在开启Go mod 模式下,非gopath目录中的代码,执行一下命令

go mod init {项目名}

例:
$ go mod init mod_demo
go: creating new go.mod: module mod_demo

项目根目录中便会生成一个 go.mod 文件,文件中内容很简单,仅有两行代码如下:

module mod_demo

go 1.12
2、go.mod 文件的配置

go.mod 文件中用到的关键字有三个

  • require:引用哪些包
  • replace:替换一些包的下载和引用路径
  • exclude:不下载和引用哪些包
require

一般来说,require () 是不需要自己手动去修改的,当运行代码的时候,会根据代码中用到的包自动去下载导入

replace

在我看来,replace 对于国内开发来说是个神功能,他可以将代码中使用,但国内被墙的代码替换成github上的下载路径,例如:golang.org/x/ 下的包,全都替换成github地址上的包,版本使用 latest 即可

module mod_demo

go 1.12

replace (
	golang.org/x/net => github.com/golang/net latest
	golang.org/x/tools => github.com/golang/tools latest
	golang.org/x/crypto => github.com/golang/crypto latest
	golang.org/x/sys => github.com/golang/sys latest
	golang.org/x/text => github.com/golang/text latest
	golang.org/x/sync => github.com/golang/sync latest
)
exclude

这个不常用,意在指定的包,在下载和引用时,排除掉。

最后,安装完 Golang 推荐的 env 更改的配置

GO111MODULE=on
GOPATH=<自己指定workspace目录\gopath>
GOSUMDB=off
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值