引入Go module后,新增了一组go mod
命令,可以通过go help mod
查看使用帮助,如下图所示,目前一共有8个子命令,每个子命令都有多种使用参数,感觉学习成本抖增。
想要知道到底怎么用,当然是亲自动手demo一把。推荐入门文章:https://roberto.selbach.ca/intro-to-go-modules/
go mod init github.com/nevermosby/testmod
命令,把这个包初始化成一个module,本质上就是生成一个go.mod
文件,内容如下:$ cat go.mod
module github.com/nevermosby/testmod
git push
命令release这个tag版本。这样,对于testmod来说,它就有了第一个版本v1.0.0import github.com/nevermosby/testmod
并使用go mod init moduleName
命令生成go.mod
文件,相当于创建了一个module模块,内容为:
$ cat go.mod
module moduleName
执行go build
会把import依赖包生成为require语句块,如下所示:
module moduleName
require github.com/nevermosby/testmod v1.0.0
这样,usemod包就能通过go module机制管理依赖了。
import (
"github.com/nevermosby/testmod"
testmodv2 "github.com/nevermosby/testmod/v2"
)
随后重新执行go build
命令,会更新go.mod
文件为:
module moduleName
require (
github.com/nevermosby/testmod v1.0.0
github.com/nevermosby/testmod/v2 v2.0.0
)
en, 现在就可以同时引入两个版本的testmod
了,是不是很有趣!
下一篇,我们一起来show some respect to Vendor。