GO编程(打卡)-Task09: 包管理

包管理(Go Modules)

  • 是什么
    Modules是关于Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性

  • 使用方法

    • 环境变量

      # 查看当前配置
      $ go env
      # 修改配置
      $ go env -w GO111MODULE=on
      
    • GO111MODULE

      auto:只要项目包含了 go.mod 文件的话启用 Go modules,目前在 Go1.11 至 Go1.14 中仍然是默认值。

      on:启用 Go modules,推荐设置,将会是未来版本中的默认值。

      off:禁用 Go modules,不推荐设置。

    • GOPROXY

      此环境变量主要用于设计Go Module的代理

    • GOSUMDB

      此环境变量用于在拉取模块的时候保证模块版本数据的一致性

  • go get

    • 用于拉取新的依赖

    • go get 拉取依赖,会进行指定性拉取(更新),并不会更新所依赖的其它模块

    • go get -u 更新现有的依赖,会强制更新它所依赖的其它全部模块,不包括自身

    • go get -u -t ./...更新所有直接依赖和间接依赖的模块版本,包括单元测试中用到的

  • 常用命令

    go mod init  // 初始化go.mod
    go mod tidy  // 更新依赖文件
    go mod download  // 下载依赖文件
    go mod vendor  // 将依赖转移至本地的vendor文件
    go mod edit  // 手动修改依赖文件
    go mod graph  // 查看现有的依赖结构
    go mod verify  // 校验依赖
    

参考

https://github.com/datawhalechina/go-talent/blob/master/8.包管理.md

posted @ 2020-12-19 01:43  柔南青空  阅读(65)  评论(0编辑  收藏  举报