go实战项目准备

229 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

一、创建module go modules 是 golang 1.11 新加的特性。官方定义如下

模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。 modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

module是用来管理go中的包的。在module出现之前,我们的代码需要放在GOPATH/src目录下,才能编译成功。有了module之后,我们可以在任意目录编译代码。

在命令行执行下面的命令,将开启go module支持

go env -w GO111MODULE=on

GO111MODULE 有三个值:off, on和auto(默认值)。

  • GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
  • GO111MODULE=on,go命令行会使用module,而一点也不会去GOPATH目录下查找。
  • GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
当前目录在GOPATH/src之外且该目录包含go.mod文件
当前文件在包含go.mod文件的目录下面。

目前大部分go代码都是托管在国外代码仓库上的,比如github,经常访问很慢,或无法访问。为了解决这个问题,go增加了环境变量GOPROXY,将Go Module下载请求重定向到GOPROXY指向的缓存库。下面的命令,我们将优先向Goproxy.cn请求下载go代码包,如果Goproxy.cn没有,则根据direct的指示,去托管代码的原网站下载。

go env -w GOPROXY=https://goproxy.cn,direct // 使用七牛云的

建议大家如果使用go module的同时,开启GOPROXY。

二、创建todo目录,并在里面创建todo moudle

mkdir todo
cd todo
go mod init todo 

三、更新module

在命令行进入todo所在的目录,执行如下命令,更新module依赖的代码包。

go mod tidy