Module
- 目前的例子都是基于go path来建立的工程
 - go path 有两个作用
- 依赖包 用来保存依赖的代码,以及可执行文件,pkg下面的一些函数包。
 - 工作空间 workspace
 
 - go Module是从vgo发展而来的
 
Module介绍
- 官方定义:是go的相关的包的集合,Modules是源代码和版本控制单元,go命令可以直接使用。
 - 个人理解:
- 集成在go命令里的工具集
 - go.mod 文件
 - go.sum 文件 可以在工作区以外build,会自动从gopath移动出来。
 
 
init graph download
- init:初始化module 
go mod int build后名称MacintoshdeMacBook-Pro-139:module elasticnotes$ ls main.go MacintoshdeMacBook-Pro-139:module elasticnotes$ go mod init elasticnotes go: creating new go.mod: module elasticnotes MacintoshdeMacBook-Pro-139:module elasticnotes$ cat go.mod module elasticnotes go 1.15 MacintoshdeMacBook-Pro-139:module elasticnotes$ go build MacintoshdeMacBook-Pro-139:module elasticnotes$ ls elasticnotes go.mod main.go - graph:把依赖打印出来 
go mod graph - download:下载依赖到工作区 
go mod download 
tidy verify why
- tidy:整理的意思,把我们需要的依赖添加进来,不需要的删除掉。
 - verify:验证依赖,源代码或依赖module的源码代码。
 - why:依赖关系,可以指定依赖。
 
edit vendor
- edit:
- -requrie=path@version 需要代理或下载指定地址的包
 - -replace=old[@v]=new[@v] 替换版本
 - -go=version 指定版本
 - -print 当前go module文件打印出来 ...
 
 - vendor:把当前项目所有的依赖都放到vendor下面去,方便我们打包。不需要抓区任何依赖。缺点是会冗余。
 
列出依赖和添加依赖常用命令_x264
- 列出依赖
- go mod graph
 - go mod why
 - go list -m all
 
 - 添加依赖
- go get
 - go build
 - go mod edit require
 - go mod download