前一篇文档已经给大家讲解了Go语言构建模式的发展,想必一定对Go Module的概和工作模式已经非常熟悉了。也对于如果使用go mod命令讲go的项目变为Go module进行项目的构建也有了初步的动手能力。
不过真的在生产过程中,作为Go的开发者掌握以上的操作步骤只能说是入门环境 ,真正难的是如何在后期的开发过程中管理好这些Go module的依赖包才是最关键的。
下面我将带你把Go开发中Go module的常见操作一个一个讲解清楚,并带上实际的案例。
如何在Go Module中添加一个包
当项目进入了初步的开发阶段,这个时候我们的任务就是要为这个项目导入第三方的依赖包,并通过引入的依赖包完成一些特定的功能。到了开发后期。有时候为了添加某个功能,也需要为此添加一个第三方的依赖包。
这个时候我们遇到的第一个问题就是Go module如何添加以一个新包呢?
那我们先回到上一篇gin的项目中:
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() // 监听并在 0.0.0.0:8080 上启动服务
}
现在我要为这个项目添加个功能:
package main
import (
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// 设置session存储引擎为cookie
store := cookie.NewStore([]byte("secret"))
r.Use(sessions.Sessions("mysession", store))
r.GET("/ping", func(c *gin.Context) {
session := sessions.Default(c)
session.Set("message", "pong")
session.Save()
c.JSON(200, gin.H{
"message": session.Get("message"),
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
不过现在直接进行build就会报错
main.go:4:2: no required module provides package github.com/gin-contrib/sessions; to add it:
go get github.com/gin-contrib/sessions
main.go:5:2: no required module provides package github.com/gin-contrib/sessions/cookie; to add it:
go get