前言
最近打算把服务端的一些 Go 服务升级到 1.13
, 并且用上 Go Module
这个 Go 的第三方包管理机制。 虽然早在 Go 1.11
版本发布的时候,就推出了 Go Module
这个机制了,但是毕竟那时候还在跟 Go dep
撕逼呢, 而且是第一个版本出来的新机制,有点不敢用,怕入坑之后爬不出来。 一直等到了 1.13
版本,这个机制已经相对成熟了,而且几乎取代了 vendor
机制了,也被广大 gopher 接受了,所以是时候升级上来了。而且升级的代价其实不高,因为 Go 的版本发布几乎都遵守Go1兼容协议, 也就是说我们几乎不需要改代码依然有很大的概率可以编译成功(事实上改动的确实不多,无非就是针对 Go Module
机制,将一些第三方依赖的引用进行调整,具体的业务逻辑几乎不用动)。改动成本那么低,又可以告别 Go path
, 采用更加优雅的 Go Module
, 何乐而不为,所以本文主要是讲一下 Go Module
的一些简单试用。