使用mod管理go依赖包和gin框架简单应用

 

  • 背景:

  go mod其实就是一个Modules,关于Modules的官方定义为:

  Modules是相关Go包的集合,是源代码交换和版本控制的单元。简单的说就是一个类似索引文件,里面包含依赖哪些模块。

  go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。

  优点:

  1、排除来GOPATH的无法有效的管理版本依赖,没有一个地方能够表明依赖包的具体版本号,无法形成有效的版本配套关系的缺点。

  2、排除使用vendor这个特性,vendor它能够很好的管理工程,但是它会使得每一个工程都会有一个单独的vendor,非常浪费硬盘,可能导致ide直接卡死。

  3、Go Modules相关是一个索引文件,不需要包含src,bin等子目录,只要目录下包含go.mod文件即可。

  • 准备工作

Go语言设置GOPROXY,开启go module 

go env -w  GO111MODULE=on

配置goproxy,执行下面的命令

七牛云配置:

go env -w GOPROXY=https://goproxy.cn      // Windows  
export GOPROXY=https://goproxy.cn         // macOS 或 Linux

 阿里配置:

go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/       // Windows  
export GOPROXY=https://mirrors.aliyun.com/goproxy/          // macOS 或 Linux

注意:

Go 1.13设置了默认的GOSUMDB= sum.golang.org,是用来验证包的有效性。这个网址由于墙的原因可能无法访问,所以可以使用下面命令来关闭:

go env -w GOSUMDB=off // Windows  
export GOSUMDB=off // macOS 或 Linux
  •  在项目的根目录 初始化go mod init XX名字
go mod init gobasic

  • 在该目录下安装gin框架
go get -u github.com/gin-gonic/gin

  安装成功后,gopath目录会生成pkg文件,里面包含下载的包

 

  • 设置go modules启用状态,否则项目依赖无法关联情况

 创建一个实例,使用gin框架输出

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "log"
)

func main() {
    engine := gin.Default()
    engine.GET("/hello", func(c *gin.Context) {
        fmt.Println("请求路径", c.FullPath())
        c.Writer.Write([]byte("Hi this is use gin frame \n"))

    })
    if err := engine.Run(); err != nil {
        log.Fatalf(err.Error())
    }
}

 

 

posted @ 2022-11-10 22:50  低调码农哥!  阅读(337)  评论(0编辑  收藏  举报