Skip to content

Module

  • 目前的例子都是基于go path来建立的工程
  • go path 有两个作用
    1. 依赖包 用来保存依赖的代码,以及可执行文件,pkg下面的一些函数包。
    2. 工作空间 workspace
  • go Module是从vgo发展而来的

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