go modules
前言
原先的 gopath
已经严重过时,新的go版本已经默认开启 go modules
了。本来,虽然 gopath
有很多劣势,但是我还是有路径依赖的倾向,懒得去看新标准了。但是公司的go server也用了 go modules
这就很有必要看一看了。
正文
总得来说 go modules
这套系统是为了做到相对更好的包管理与协同开发。其功能有点类似于python的 pip requirement
,当使用者 import 一个包时,会在go.mod里面写上其路径与版本。同时也会标注程序的根包名和版本生成校验值于go.sum。这是因为go的包管理是去中心化的,而pip是有中心化管理,不允许发布者更改已发布版本的。
以前的 go path
系统中,必须将程序放在 go path
的src里面。现在可以将程序放在任意位置。同时IDE也可以直接根据依赖清单下载所有依赖。
开了go moduel
以后,其实就不用在命令行里面执行go get了。因为不会下载进modele
License:
CC BY 4.0