C++选手快速上手Go(5) | 青训营笔记

106 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记

第二节:Go 语言上手 - 工程实践

Go依赖管理(下)

接第4篇笔记,本篇开始介绍如今使用的依赖管理工具——Go Module

  1. Go Module

    我们如今使用go.mod文件来管理依赖包的版本,通过go mod指令来进行依赖管理

    在课上老师提到了依赖管理三要素,可以留意一下

    1.配置文件,描述依赖
    ​
    2.中心仓库管理依赖库
    ​
    3.本地工具
    

    go mod目前是Go的官方解决方案,从1.13版本开始成本默认的包管理工具,这里我们简要介绍下go.mod

    模块是指一组相关的包,这些包一起发布,版本号一致,可以直接从版本管理仓库(比如git)下载,也可以通过proxy代理服务器下载到本地。类似maven的包管理,每个包/模块都有自己的坐标,唯一标识。Go mod中使用module path来唯一标识模块,其定义在go.mod文件中,此文件也包括了模块的依赖信息。模块中的包是一些在相同目录中的go源码文件,包也有自己的标识/路径,由module path和包所在的目录组成

    在go.mod文件中,代码大致被分为三部分:依赖管理基本单元、原生库以及单元依赖

    首先是依赖管理基本单元,在依赖管理基本单元中包含有模块的路径,从模块路径可以看出从哪里找到该模块,如果是github前缀则表示可以从Github仓库找到该模块,依赖包的源代码由github托管,如果项目的子包想被单独引用,则需要通过单独的init go.mod文件进行管理。

    中间的原生库包含原生的go版本

    最下面是单元依赖,每个依赖单元用模块路径+版本来唯一标识。