告别GOPATH,快速使用 go mod(Golang包管理工具)

栏目: Go · 发布时间: 6年前

内容简介:如果你还在使用 GOPATH 模式来开发Golang程序,那么你可以参考本文来告别 GOPATH,并带给你一个方便的包管理工具。关于 go mod 的说明和简单使用,可以参考:1、

如果你还在使用 GOPATH 模式来开发Golang程序,那么你可以参考本文来告别 GOPATH,并带给你一个方便的包管理工具。

关于 go mod 的说明和简单使用,可以参考:

1、 Go1.1.1新功能module的介绍及使用

2、 Introduction to Go Modules

3、 Go 1.11 Modules 官方说明文档

使用go mod 管理项目,就不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目,比如:

新建一个名为 wserver 的项目,项目路径 D:\test\wserver (注意,该路径并不在GOPATH里)

告别GOPATH,快速使用 go mod(Golang包管理工具)

进入项目目录 D:\test\wserver 里,新建一个 go 源码文件: main.go

告别GOPATH,快速使用 go mod(Golang包管理工具)

然后在 D:\test\wserver 里打开终端执行命令: go mod init wserver (go mod init 后面需要跟一个名字,我这里叫wserver)

告别GOPATH,快速使用 go mod(Golang包管理工具)

看到提示 “go: creating new go.mod: module wserver”  说明 go mod 初始化成功了,会在当前目录下生成一个 go.mod 文件。

包含go.mod文件的目录也被称为模块根,也就是说,go.mod 文件的出现定义了它所在的目录为一个模块。

执行上述命令之后,其实你已经可以开发编译运行此项目了,比如我们随便使用github上的一个包,在终端打印一下

告别GOPATH,快速使用 go mod(Golang包管理工具)

运行一下,会看到输出结果:  { false false false}  ,同时项目目录下多出了一个文件 go.sum  。go.sum 是记录所依赖的项目的版本的锁定。

告别GOPATH,快速使用 go mod(Golang包管理工具)

现在我们再建一个项目内的包 route :

告别GOPATH,快速使用 go mod(Golang包管理工具)

在 main.go 里如果需要使用这个包,需要使用这个包的 模块内的绝对路径来导入,比如:

告别GOPATH,快速使用 go mod(Golang包管理工具)

"wserver/route"  导入这个包的地方是 模块内的绝对路径,就是要从go.mod所在的目录开始。

另外,如果我们想把这个项目放到GOPATH下面,不使用go mod模式,而是想使用GOPATH模式的话,,只需要把这个项目移到GOPATH环境变量包含的任意一个目录下面的src目录里,就可以启用GOPATH模式了(前提是 GO111MODULE 这个环境变量的值必须是auto 或 off)。

比如:gotest 目录是GOPATH环境变量里的其中一个目录,我们将上面的代码复制到 src 目录下,删除原来的go.mod 、go.sum 两个文件(也可以不删除),代码一样可以运行:

告别GOPATH,快速使用 go mod(Golang包管理工具)

小总结:

使用go mod ,利用Go 的 module 特性,你再也不需要关心GOPATH了(当然GOPATH变量还是要存在的,但只需要指定一个目录,而且以后就不用我们关心了), 你可以任性的在你的硬盘任何位置新建一个Golang项目了。

好了,本文就是个非常简单的小示例,只是告诉初次使用go mod的人,如何快速开始使用go mod 。详细的概念和使用方法,请仔细阅读开头列出的3篇文章。


以上所述就是小编给大家介绍的《告别GOPATH,快速使用 go mod(Golang包管理工具)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Machine Learning in Action

Machine Learning in Action

Peter Harrington / Manning Publications / 2012-4-19 / GBP 29.99

It's been said that data is the new "dirt"—the raw material from which and on which you build the structures of the modern world. And like dirt, data can seem like a limitless, undifferentiated mass. ......一起来看看 《Machine Learning in Action》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器