go module & proxy使用
go包管理工具,推荐使用 go modules
准备:GO111MODULE,默认值为 auto, 因国内原因最好配置好go proxy
如下:
export GO111MODULE=on
export GOPROXY=http://mirrors.aliyun.com/goproxy,direct
示例初始化gin工程:
cd go-gin-api && go mod init go-gin-api
输出:
go: creating new go.mod: module go-gin-api
这时目录会多出一个文件:go.mod
编码,添加项目依赖包:
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里会有gin的包
可能会遇到的问题:
1、目录中没发现 gin 包,包下载到哪了?
下载到了 GOPATH/pkg/mod 目录中。
2、GoLand 编辑器中关于 Gin 的引用变红了?
在这里编辑器需要设置一下:
Perferences->Go->Go Modules(vgo)
将 Enable Go Modules(vgo)integration勾上
Proxy输入:direct
将Vendoring mode也可勾选上
点击Apply, 如还是无作用
执行下面命令:
go mod vendor
命令是将项目依赖的包,放到项目的 vendor 目录中
go mod 常用命令
go mod tidy 拉取缺少的模块,移除不用的模块. go mod vendor 将依赖复制到vendor下. go mod download 下载依赖包 go mod verify 检验依赖 go mod graph 打印模块依赖图 更多命令,执行 go mod