GO -mod和​GO111MODULE设置的那些事原创

go -mod设置

在vscode的IDE的settings.json文件可以设置-mod的内容:

具体样例如下:

"go.toolsEnvVars": { "GOFLAGS": "-mod=mod" },

//上面设置意味着在VSCode的IDE中,不论是代码跳转还是编译运行都生效-mod=mod的设置

其中,-mod有几个枚举方式:

1.-mod=mod:意味着,忽略vendor文件夹,且对代码引用的(import)库列表自动更新到go.mod文件中,适用于带网络的研发环境调试编译

如果需要go.mod对应的库内容,经过go mod tidy命令后,引用的内容(即go.mod)会下载到Gopath目录下(即module cache目录下),同时也会删除多余的引用的内容, 确保 go.mod 文件与模块中的源代码匹配。

在gopls(VSCode的IDE的用于代码解析和调转插件)的作用下,点击引用的方法,可以直接跳转到gopath文件夹下的源码

使用go get 安装新的包只能在-mod=mod的情况下

2.-mod=vendor:意味着,直接引用(import)当前目录下vendor文件夹的内容,而不用Gopath目录下(即module cache目录下)的内容,可以理解为完全的本地编译,无需网络依赖,适用于真实项目的编译使用

如果需要更新vendor的库内容,有两种方式,一种直接手动更新vendor的内容,另一种是go mod vendor更新内容,第二种会将当前目录下vendor目录直接删除,重新下载,所以如果要修改内容,就不用go mod vendor命令

在gopls(VSCode的IDE的用于代码解析和调转插件)的作用下,点击引用的方法,可以直接跳转到vendor文件夹下的源码

不能使用go get命令

3.-mod=readonly:意味着,忽略vendor文件夹,提示代码引用的(import)库列表与go.mod文件中的内容不符,与-mod=mod的区别是不更新go.mod的内容,其他的与-mod=mod一致

4.默认使用清拉营:如果在go.mod设置了go版本,且go版本大于1.14(含),且vendor文件存在,则相当于设置成了-mod=vendor,否则则设置成了-mod=readonly

参考来源:Go Modules Reference - The Go Programming Language

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值