Go Modules的使用

日期: 2020-03-10 19:10:31
更新: 2020-03-10 19:10:00
By Stiller

分类 Go.

标签: Go Golang

在学习Go语言的过程中,没有仔细看Go语言Windows的配置,在练习Gin项目时一直找不到Module,在经历重重失败后,才知道了Go开发需要使用到 GOPATH进行配置,使用set GOPATH=进行配置,并且在该文件夹中增加src/,pkg/,bin/三个文件夹。

但是这种配置一个项目进行一次且没有合适的包管理实在是难以接受,然后发现了如今的Go语言提供方了Modules这个概念。

通过go mod进行包管理,该工具会自动的将当前使用的代码模块进行记录,生成相应的文件,modules是源代码交换和版本控制的单元。

需要配置GO111MODULE,GO111MODULE有三个值off,on,auto。如果不需要一些老项目的兼容,可以直接在全局变量中设置其为on,使用下方的命令进行项目的初始化:

go mod init test

这样就创建了一个go.mod,如果该文件夹本身已经被配置为GOPATH,则必须取消GOPATH系统变量,这时使用go get命令则会在该go.mod文件中生成相关的配置,如下所示。

module hello

go 1.14

require github.com/gin-gonic/gin v1.5.0 // indirect

这时在该文件夹内可以编写相关的go文件代码,可以成功的进行包的引用,需要注意的是,如果需要使用Goland这样的开发IDE则需要在setting中取消使用GOPATH,取消“Use GOPATH that's defined in system environment”,且不配置Project GOPATH(就是一个项目的go mod和GOPATH不能同时存在)。

链接