go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct

    代理地址:
    https://goproxy.cn
    https://mirrors.aliyun.com/goproxy
    https://goproxy.baidu.com/

    https://juejin.im/post/5d8ee2db6fb9a04e0b0d9c8b

    GO111MODULE可以设置为三个字符串值之一:off,on或auto(默认值)。

    • OFF: 查找vendor 目录和GOPATH模式”。
    • on 则go命令需要使用模块,go 会忽略 $GOPATH 和 vendor 文件夹,只根据go.mod下载依赖。
    • auto 或未设置,则go命令根据当前目录启用或禁用模块支持。仅当当前目录位于$GOPATH/src之外并且其本身包含go.mod文件或位于包含go.mod文件的目录下时,才启用模块支持。 | 命令 | 作用 | | :—- | :—- | | go mod download | 下载依赖包到本地(默认为 GOPATH/pkg/mod 目录) | | go mod edit | 编辑 go.mod 文件 | | go mod graph | 打印模块依赖图 | | go mod init | 初始化当前文件夹,创建 go.mod 文件 | | go mod tidy | 增加缺少的包,删除无用的包 | | go mod vendor | 将依赖复制到 vendor 目录下 | | go mod verify | 校验依赖 | | go mod why | 解释为什么需要依赖 |

    require语句指定的依赖项模块
    replace语句可以替换依赖项模块
    exclude语句可以忽略依赖项模块

    1. module example.com/foobar
    2. go 1.13
    3. require (
    4. example.com/apple v0.1.2
    5. example.com/banana v1.2.3
    6. example.com/banana/v2 v2.3.4
    7. example.com/pineapple v0.0.0-20190924185754-1b0db40df49a
    8. )
    9. exclude example.com/banana v1.2.4
    10. replace example.com/apple v0.1.2 => example.com/rda v0.1.0
    11. replace example.com/banana => example.com/hugebanana

    go clean -modcache 清除缓存
    go mod 新东西偶尔还会出现问题 ,这个命令可以尝试修复,不过执行之前可以考虑备份一下pkg/mod中的包.以防不测.

    go list -m -u all来检查可以升级的 package