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