• Go Module的基本使用


    go module是类似于java中的maven,是包的管理工具,在没有这个go module之前,都是配置本地的GOPATH,创建的每个项目也都必须创建在这个GOPATHsrc目录下,且项目的go文件不能重名
    go module是在go1.1.1版本推出的

    开启go module

    在本地上打开终端执行go env
    在这里插入图片描述
    可看到环境的相关配置:

    GO111MODULE:默认是为空,有三个值,on(开启),off(关闭),auto(自动)
    GOPROXY:配置下载包的地址,我们可以更换为国内镜像源

    • 执行 go env -w GO111MODULE=on设置go module为开启状态
    • 设置为国内镜像源,这是由国内七牛云提供 go env -w GOPROXY=https://goproxy.cn,direct

    这样go module就开启好了,开启之后如何使用?先执行go mod help,不管在学什么只要是有命令行的,先执行help命令。
    在这里插入图片描述

    可看到其中是有初始化命令,而go module是用来管理项目的第三方包的,所以我们可以创建一个文件夹,在文件夹中初始化
    在这里插入图片描述

    可看出新的文件 go.mod

    用goland打开项目

    (1)设置镜像地址

    不设置的话会报exec: “git”: executable file not found in %PATH%一.git
    在这里插入图片描述

    (2)导入Gin包检查go module是否使用正常
    go get -u github.com/gin-gonic/gin
    
    • 1
    PS C:\Users\X\Desktop\waodaoxr> go get -u github.com/gin-gonic/gin
    go: downloading golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
    go: downloading github.com/goccy/go-json v0.9.7
    go: downloading github.com/pelletier/go-toml/v2 v2.0.1
    go: downloading google.golang.org/protobuf v1.28.0
    go: downloading github.com/go-playground/validator/v10 v10.10.0
    go: downloading github.com/pelletier/go-toml v1.9.5
    go: downloading github.com/pelletier/go-toml/v2 v2.0.6
    go: downloading github.com/go-playground/validator/v10 v10.11.1
    go: downloading github.com/goccy/go-json v0.9.11
    go: downloading golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069
    go: downloading github.com/go-playground/validator v9.31.0+incompatible
    go: downloading github.com/ugorji/go v1.2.7
    go: downloading golang.org/x/net v0.2.0
    go: downloading golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
    go: downloading github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
    go: downloading golang.org/x/crypto v0.3.0
    go: downloading golang.org/x/sys v0.2.0
    go: downloading golang.org/x/text v0.4.0
    go: added github.com/gin-contrib/sse v0.1.0
    go: added github.com/gin-gonic/gin v1.8.1
    go: added github.com/go-playground/locales v0.14.0
    go: added github.com/go-playground/universal-translator v0.18.0
    go: added github.com/go-playground/validator/v10 v10.11.1
    go: added github.com/goccy/go-json v0.9.11
    go: added github.com/json-iterator/go v1.1.12
    go: added github.com/leodido/go-urn v1.2.1
    go: added github.com/mattn/go-isatty v0.0.16
    go: added github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
    go: added github.com/modern-go/reflect2 v1.0.2
    go: added github.com/pelletier/go-toml/v2 v2.0.6
    go: added github.com/ugorji/go/codec v1.2.7
    go: added golang.org/x/crypto v0.3.0
    go: added golang.org/x/net v0.2.0
    go: added golang.org/x/sys v0.2.0
    go: added golang.org/x/text v0.4.0
    go: added google.golang.org/protobuf v1.28.1
    go: added gopkg.in/yaml.v2 v2.4.0
    PS C:\Users\X\Desktop\waodaoxr>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    下载成功,可查看上面初始化创建的go.mod文件,可看到导入了一些包

    (3)使用Gin
    package main
    
    import  "github.com/gin-gonic/gin"
    func main()  {
    	engine := gin.Default()
    	engine.GET("/test", func(context *gin.Context) {
    		context.JSON(200,gin.H{
    			"message":"the project is test module gin",
    		})
    	})
    	engine.Run()
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    (4)执行、发送请求

    在这里插入图片描述

    go module的基本命令

    (1)go mod init 项目名称:初始化命令
    (2)go mod download : 下载modules到本地cache,路径是go env中的GOMODCACHE,跟java的maven,也就是你的本地仓库
    (3)go mod tidy : 添加缺失或删除没有使用的包
    (4)go mod verify:验证依赖是否正确
    (5)go mod why:查找依赖
    (6)go mod edit:可执行go help mod edit查看用法,也可到官网查看,主要也是用来操作go.mod文件的

  • 相关阅读:
    Docker - 网络
    kubernetes深入理解之Service
    Halcon · 曲线宽度检测算法总结
    React Hooks解析
    AxureR9根据选择内容触发不同的事件
    Redis系列——什么是Redis
    React基础-React中发送Ajax请求以及Mock数据
    元宇宙简介
    娣卞害绁炵粡缃戠粶棰勬祴妯″瀷
    零基础想系统地学习金融学、量化投资、数据分析、python,需要哪些课程、书籍?有哪些证书可以考?
  • 原文地址:https://blog.csdn.net/weixin_44014995/article/details/128003321