GO旧项目迁移以及Go mod的基本使用

MengDe 1707 2020-11-29

在go使用GOPATH方式和GOVendor管理包的方式的过程中,经常性的会造成引用包的版本不一致,几万个文件放在同一个src里面等多个问题,那么如何解决呢? 

在go v1.12版本之后引入了gomod这个方式来管理包 ,他的好处:引入包更方便,管理版本更好

废话不多说,直接上教程。

GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第1张

一般情况下,我们的老项目会有这两个文件(文件夹)其中的一个或者两个都同时存在,那么我们在想要升级如何做呢?

我们在V1.2版本以后可以直接使用命令行来生成

go mod init project1 
//go mod 是管理工具
//init 是初始化
//project1是项目名称

然后我们将会得到一个文件

    GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第2张

第二步,执行迁移

go build ./...
// ./...代表的就是将所有的扩展全部拉取下来 然后go mod 的文件将会发生变化

GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第3张

此时发现,文件还是报错  没关系,我们将之前的包管理删除即可

    GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第4张


在使用go mod之后,更方便的在于,我们可以在任意的文件夹创建go项目,而不用再到特定的目录下面去创建

其次,如果我们需要更改版本如何使用呢?

例如这个zap包,官方地址:https://github.com/uber-go/zap

我们只需要执行名称后面带上@版本即可

go get -u go.uber.org/zap@v1.1

GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第5张

此时,go mod文件报错,我们使用tidy清理掉之前的V1.6版本

go mod tidy 
//清理掉之前的V1.6

GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第6张

GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第7张

如果说我们此时需要升级到最新版本或者其他的版本又如何操作呢? 

执行命令带上版本号或者 不带版本号,他将会以你最后一次执行go get的版本为使用版本

go get -u go.uber.org/zap


GO旧项目迁移以及Go mod的基本使用  gomod govendor gopath go项目迁移 go旧项目迁移 gomod管理 第8张


这就是go mod 的使用方式!

上一篇:thinkphp6 模型自定义排序
下一篇:Mac下安装PHP7.4和PHP8
相关文章