golang团队在版本1.13及以后全面支持module机制,用于结束混乱复杂的项目管理机制。同学们可以简单的将module机制理解成pip、apt-get等包管理工具。
一个项目(仓库)包括多个module(模块),一个模块包括多个package(包),而一个包含多个代码源文件。
简单的说,在一个module中,module机制自动保证导入所有源文件中使用的标准库和第三方包,而不用逐一go get;同时完成版本管理。
假设已安装golang 1.13或更高版本,则默认开启module机制,所以可以直接使用module相关的命令。
初始化module
通过go init初始化module后,在该目录下生成go.mod文件,用于记录项目中需要的第三方依赖的名称和版本;由于项目中可能使用相同依赖的不同版本,所以文件根据名称和版本进行区分。
另外会生成go.sum文件,用于记录第三方依赖的校验信息;当有项目交接、迁移等过程时,新的环境必须和go.sum中的记录相同。所以当有版本控制时,go.mod和go.sum两个文件一定要提交。
$:mkdirgo_module_test && cdgo_module_test
$:gomod init test
go: creating new go.mod: module test
$:catgo.mod
module test #module名称
go 1.13 #go的版本
导入第三方依赖
之前通过go get来获取第三方依赖,而基于module机制,只要在源码中进行导入,通过g