Post

Go 1.12 版本更新

go mod 1.12 学习

go modules(check version)

  • 检查 golang 版本
1
2
3
4
5
如果没有生成 go.sum 或者报错请输入
export GOPROXY=https://goproxy.io

C:\Users\admin>go version
go version go1.12.9 windows/amd64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
把 golang 升级到 1.11(现在1.12 已经发布了,建议使用1.12)
设置 GO111MODULE

GO111MODULE
GO111MODULE 有三个值:off, on和auto(默认值)。

GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:

当前目录在GOPATH/src之外且该目录包含go.mod文件
当前文件在包含go.mod文件的目录下面。

当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的 module。

  • download

    • download modules to local cache(下载依赖包)
  • edit

    • edit go.mod from tools or scripts(编辑 go.mod
  • graph

    • print module requirement graph (打印模块依赖图)
  • init

    • initialize new module in current directory(在当前目录初始化 mod)
  • tidy

    • add missing and remove unused modules(拉取缺少的模块,移除不用的模块)
  • vendor

    • make vendored copy of dependencies(将依赖复制到 vendor 下)
  • verify

    • verify dependencies have expected content (验证依赖是否正确)
  • why

    • explain why packages or modules are needed(解释为什么需要依赖)
  • go.mod

    • module: 语句指定包的名字(路径)
    • require: 语句指定的依赖项模块
    • replace: 语句可以替换依赖项模块
    • exclude: 语句可以忽略依赖项模块
This post is licensed under CC BY 4.0 by the author.