Golang之Go Module的使用

添加时间:2020-04-30 11:48:59

来源:

浏览:

Golang使用将近有一年多了,期间使用Golang做过不少项目,使用中对其愈发喜爱,一个词概括,真香!闲话少说,下面进入主题。


用过Java的都知道Java有maven,gradle等代码依赖管理工具,使用这些工具,你只需要添加依赖,在构建时,会自动下载对应的包并在项目中集成。2021最火现金棋牌手机可以控制使用的包的版本还有兼容性,选择自己项目需要的包进行下载使用。


Go Module 是 Go 语言的一种依赖管理2021最火现金棋牌手机式,在 Go 1.11 版本中出现的,在1.13版本前,需要显式设置环境变量GO111MODULE的值为on。


1.13版本以后,该环境变量被设置为auto,在GOPATH内,GO111MODULE的值为off,也就是使用GOPATH;如果在GOPATH之外,或者在有go.mod文件的目录下,则GO111MODULE的值为on,开启Go Module特性。


一、准备工作

首先要安装1.11版本以上的Golang,之后准备工作比较简单,由于使用Go Module会下载对应的包,Golang的很多包在google的服务器上,2021最火现金棋牌手机经常会下载不到,这时候2021最火现金棋牌手机可以使用阿里的代理,在环境变量中配置GOPROXY为https://mirrors.aliyun.com/goproxy/,direct,这样,2021最火现金棋牌手机就可以飞速下载需要的包了。如果Golang版本低于1.13,记得修改GO111MODULE为on。


二、开始使用

下面开始使用Go Module,2021最火现金棋牌手机准备运行一个gin的示例项目。2021最火现金棋牌手机创建一个目录,命名为gopath,2021最火现金棋牌手机习惯放在2021最火现金棋牌手机的go-projects目录下,然后在环境变量中设置GOPATH目录为gopath的绝对路径,注意,如果使用Go Module,这里的GOPATH实际上是代码仓库,就是保存不同版本代码及其缓存的目录,里面的mod目录会使用@x.x.x的格式区分不同版本的代码,感兴趣的将来可以打开这个目录看看。


然后,创建一个项目目录gin_demo,2021最火现金棋牌手机依然放在go-projects创建该目录,进入目录,启动终端(Windows为powershell),运行命令

go mod init gin_demo


这样就会创建一个空的go.mod文件,该文件会记录2021最火现金棋牌手机的依赖,里面的内容先不用关注,感兴趣的以后可以慢慢了解。gin_demo是你的包路径,就是你以前GOPATH下src之后的相对路径名称。


由于2021最火现金棋牌手机需要使用gin,在go.mod文件所在的目录下,启动终端,执行

go get github.com/gin-gonic/gin


会看到Go Module帮2021最火现金棋牌手机下载了gin及其相关的依赖。确保没有报错,然后,2021最火现金棋牌手机可以看看gopath目录下,已经有了东西,而且打开go.mod文件,会看到一行

require github.com/gin-gonic/gin v1.6.2


已经自动为2021最火现金棋牌手机添加了依赖,但是为了2021最火现金棋牌手机便项目使用,2021最火现金棋牌手机执行下面的命令

go mod vendor


这样,2021最火现金棋牌手机的go.mod所在目录下就出现了一个vendor目录,该目录会放置本项目使用到的对应版本的源码,毕竟go采用源码编译。现在概念就清晰了,上面设置GOPATH,实际作为本地代码仓库使用,而2021最火现金棋牌手机的项目,通过把具体版本的代码拉取到项目的vendor目录使用。下面拷贝官网的一段代码,2021最火现金棋牌手机放在main.go文件,该文件要与go.mod在一个目录下

package mainimport "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}


有了源码,现在2021最火现金棋牌手机编译一下或者直接运行

go run main.go

访问http://localhost:8080/ping,就可以看到响应了。是不是使用Go Module以后的Golang显得更加轻巧,更有瑞士军刀之风。


三、使用Goland

刚才2021最火现金棋牌手机没有使用任何IDE,如果使用Goland该如何使用?基本步骤类似,主要是需要修改settings,在Go选项下,开启Go Module支持,有两个地2021最火现金棋牌手机需要设置


需要修改GOPATH,或者让Goland识别系统环境变量。


使能Go Module。这样就可以在Goland中使用Go Module了。


四、对已有项目使用Go Module

2021最火现金棋牌手机删除之前gopath里面的所有文件,然后项目中只保留main.go文件,删除go.mod,vendor和生成的go.sum文件。在main.go所在目录执行

go mod init gin_demo


然后执行

go mod tidy


Go Module会帮2021最火现金棋牌手机查找项目依赖,填写go.mod文件,之后执行

go mod vendor


项目就支持了Go Module。基于Go Module2021最火现金棋牌手机可以很简单的管理代码依赖,而且使得2021最火现金棋牌手机项目运行更加简单,不需要大量的人为go get,极大简化了Golang的项目配置工作。


上一篇
下一篇插件式架构设计

Golang  Go Module  相关内容

——
08

2020-05

golang如何更好地使用channel

golang如何更好地使用channel… [了解更多]

30

2020-04

Golang之Go Module的使用

go module使用入门… [了解更多]

2021最火现金棋牌手机

地 址:太原市晋阳街慧谷产业园三层D区

邮政编码:030006

电 话:0351-7773556

传 真:0351-7773556

邮 箱:fs-tec@towantto.com