前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GO -mod和​GO111MODULE设置的那些事原创

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

作者头像
粲然忧生
发布2024-06-13 10:41:52
1790
发布2024-06-13 10:41:52
举报
文章被收录于专栏:工程师的分享

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • go -mod设置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档