Skip to content

Module

Warning

请注意,在Beego V2 之后,我们要求使用go mod特性,请务必确保开启了go mod特性,即设置了GO111MODULE=on。
- 设置GO111MODULE=on的方法,终端执行以下方法

go env -w GO111MODULE=on
- 验证GO111MODULE的状态
jartin@macbookpro gopath % go env                  
GO111MODULE='on'
...
- 更多关于 GO111MODULE1 的介绍

Module介绍

  • 官方定义:是go的相关的包的集合,Modules是源代码和版本控制单元,go命令可以直接使用。
  • 个人理解:
    1. 集成在go命令里的工具集
    2. go.mod 文件
    3. 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:
    1. -requrie=path@version 需要代理或下载指定地址的包
    2. -replace=old[@v]=new[@v] 替换版本
    3. -go=version 指定版本
    4. -print 当前go module文件打印出来 ...
  • vendor:把当前项目所有的依赖都放到vendor下面去,方便我们打包。不需要抓区任何依赖。缺点是会冗余。

列出依赖和添加依赖常用命令_x264

  • 列出依赖
    1. go mod graph
    2. go mod why
    3. go list -m all
  • 添加依赖
    1. go get
    2. go build
    3. go mod edit require
    4. go mod download

  1. 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 文件时,开启模块支持;否者无模块支持。