Module
Warning
请注意,在Beego V2 之后,我们要求使用go mod特性,请务必确保开启了go mod特性,即设置了GO111MODULE=on。
- 设置GO111MODULE=on的方法,终端执行以下方法
- 更多关于 GO111MODULE1 的介绍
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
-
GO111MODULE 是 Go 1.11 引入的新版模块管理方式。
GO111MODULE 环境变量用于开启或关闭 Go 语言中的模块支持,它有 off、on、auto 三个可选值,默认为 auto。
GO111MODULE=off:无模块支持,go 会从 $GOPATH 文件夹和 vendor 目录中寻找依赖项。
GO111MODULE=on:模块支持,go 忽略 $GOPATH 文件夹,只根据 go.mod 下载依赖。
GO111MODULE=auto:在 $GOPATH/src 外层且根目录有 go.mod 文件时,开启模块支持;否者无模块支持。
↩