go语言的模块处理
在java语言中有maven 来管理项目的包和库;在JavaScript 中有npm 和cnpm 进行管理项目的包; 在PHP中有composer中管理项目的包。
那么在go 语言中也有包管理器,是 mod;go modules ,这个是随着 Go 1.11 的发布和我们见面的,这是官方提倡的新的包管理。
当项目中有 go.mod 时,使用 go modules 管理;强烈建议每个go项目之初都要先生成一个 go.mod 包管理,类似PHP的composer.json 文件的作用;
生成项目的 go.mod 文件。
go mod init github.com/xxxx/xxxxx
执行完命令后就会生成 go.mod 文件,内容如下;
module github.com/xxxx/xxxxx
go 1.15
在目录中创建一个 `main.go` 的文件,放上如下代码:
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) r.Run() // listen and serve on 0.0.0.0:8080 }
接下来,开始下载依赖包 命令。
go mod tidy
执行完成后,看一下 `go.mod` 文件:
module github.com/xxxx/xxxxx
go 1.15 require github.com/gin-gonic/gin v1.7.2
go mod tidy
拉取缺少的模块,移除不用的模块。 会从代码里直接拉取包
go mod vendor
将依赖复制到vendor下,建议把每个项目的包放到一个单独的vender ,调试源码非常方便。
go mod download
下载依赖包。
go mod verify
检验依赖。
go mod graph
打印模块依赖图。
其他命令,可以执行 go mod
,查看即可。