本文作者:陈进坚
个人博客:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
简书:https://www.jianshu.com/u/8ba9ac5706b6
联系方式:jian1098@qq.com
模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
注意:开启go module
需要go1.11
及以上版本
打开模块
1 | set GO111MODULE=on //windows |
初始化
执行下面的命令生成go.mod
文件
1 | go mod init 项目名 |
执行下面的命令创建vendor
目录存放并下载依赖
1 | go mod vendor |
执行完成会生成go.sum
文件来记录所依赖的项目的版本的锁定
然后在需要使用包的文件中正常import
即可
引入新的包
在需要使用包的文件中import
,然后再次执行下面的命令即可
1 | go mod vendor |
依赖包整理
执行下面的命令可以将没用到的依赖包清除
1 | go mod tidy |
其他命令
go mod 有以下命令:
命令 | 说明 |
---|---|
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(解释为什么需要依赖) |