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 命令

go mod tidy

拉取缺少的模块,移除不用的模块。 会从代码里直接拉取包

go mod vendor

将依赖复制到vendor下,建议把每个项目的包放到一个单独的vender ,调试源码非常方便。

go mod download

下载依赖包。

go mod verify

检验依赖。

go mod graph

打印模块依赖图。

其他命令,可以执行 go mod ,查看即可。

 

原文地址:https://www.cnblogs.com/tgzmos/p/14977565.html