go语言包管理工具 go mod 详细介绍

通常来说我们创建某个项目都是直接使用IDE来进行创建,当然了使用vs code这种文本编辑器也可以,所以说使用这些工具来创建一个go的开发环境,是几乎不需要设置的,因为ide已经帮你设置好了,我们就拿goland来说,当我们选择新建一个go项目的时候,go.mod和go.sum都会自动创建完成,说到这里我们就要提一下这两个文件了。

go.mod

通常你会见到这样的格式

go.sum是系统自动管理的文件,用户禁止直接操作,就不谈了。作用就是记录使用的每一个包以及它的版本。

github.com/shgopher/short
go1.16
v1.2.0
github.com/shgopher/shortgit clone https://github.com/shgopher/shorthttps://

那么如果ide反应迟钝,或则是因为网络问题,我们该如何下载这个包到本地呢?

import()go mod tidy

说到这里,我们还得注意一件事,go是存在子包的,举个例子:

github.com/shgopher/shortgithub.com/shgopher/short/fast
github.com/shgopher/shortshortgithub.com/shgopher/babalala
github.com/shgopher/example

如何自己的项目中拥有子包,大包要调用子包该如何调用呢?其实这个场景也很常见,因为你搞子包的很大意义就是它自己的功能性自成一体,然后大包要使用这个功能,其实这个也很简单,直接调用即可。

假设这个子包叫做fast

module github.com/shgopher/shortmodule github.com/shgopher/short/v2
v2,v3,v4,v5short.xxx

如果你的包引入的外部包不够好,你想重构怎么办?这个时候就靠replace命令出手了

go.mod:

这里就是说我们项目中原本使用的是v0.1.0这个版本的i包,但是我们不想改代码,我们实际上使用的v0.3.0 版本的newshort包。

github.com/xxxgitlab/xxx


gitlab/xxx