• 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

  • 相关阅读:
    知识图谱:基本概念
    C#的Hashtable 类使用说明
    前端js传入Long类型精度丢失解决办法
    vue自定义密码输入框解决浏览器自动填充密码的问题
    如何实现办公自动化?
    高并下如何做变量的自增与自减
    【JavaSE】抽象类和接口
    短视频矩阵系统,抖音矩阵系统,抖音SEO源码。
    spring 集成redisearch
    第五十七讲 GPIO子系统
  • 原文地址:https://blog.csdn.net/killer1989/article/details/139496741