文章

go modules

前言

原先的 gopath 已经严重过时,新的go版本已经默认开启 go modules 了。本来,虽然 gopath 有很多劣势,但是我还是有路径依赖的倾向,懒得去看新标准了。但是公司的go server也用了 go modules 这就很有必要看一看了。

正文

总得来说 go modules 这套系统是为了做到相对更好的包管理与协同开发。其功能有点类似于python的 pip requirement,当使用者 import 一个包时,会在go.mod里面写上其路径与版本。同时也会标注程序的根包名和版本生成校验值于go.sum。这是因为go的包管理是去中心化的,而pip是有中心化管理,不允许发布者更改已发布版本的。

image-20210531153446578

以前的 go path 系统中,必须将程序放在 go path 的src里面。现在可以将程序放在任意位置。同时IDE也可以直接根据依赖清单下载所有依赖。

开了go moduel 以后,其实就不用在命令行里面执行go get了。因为不会下载进modele

License:  CC BY 4.0