使用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 @   低调码农哥!  阅读(367)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2020-11-10 springboot+mybatis使用Mybatis-Generator工具生成mapper、model、接口等文件
点击右上角即可分享
微信分享提示