在我们开发项目时,总会使用到第三方的库来简化我们的开发,所以几乎每一种开发语言都会有自身的包管理机制,例如:Python中的PIP,Java中的Maven,Node.js中的NPM等。如果有看过一些Go的项目,会发现代码的根目录都会有go.mod文件,这是Go中对项目模块集中管理的方式,也是可以将自身作为模块供其他模块使用的方式。本文档主要参考官方的教程《Tutorial: Create a Go module》(https://go.dev/doc/tutorial/create-module)思路,对内容部分进行了简化和调整。
上一节中,GOPATH方式虽然解决了包的引用问题,但是从不够灵活,也不利于包的传输,所以在1.1版本推出了Go Modules,到了1.4版本已经是生产可用状态,我们看到目前很多大型项目基本都是采用这种方式来管理自己的包,这一部分将会在Go Modules单独进行讲解。所以在开始之前,一定要确认GO111MODULE状态,要将GO111MODULE设置为on。
# 查看状态
go env GO111MODULE
# 通过环境变量设置状态(临时)
export GO111MODULE=on
# 永久生效
# go env -w GO111MODULE=on
另外在上一节,由于我们改变了默认的GOPATH位置,所以我们首先要还原一下GOPATH,默认的GOPATH就是用户$HOME/go路径,后续使用命令安装的包也会缓存于此。
go env -w GOPATH=""
常用命令
Go的模块管理工具是内置的,不需要单独安装。Go中与Modules管理主要使用go mod命令,命令列表如下,不用纠结这些命令该如何使用,通过下面的例子我们加以理解。
Go mod provides access to operations on modules.
Note that support for modules is built into all the go commands,
not just 'go mod'. For example, day-to-day adding, removing, upgrading,
and downgrading of dependencies should be done using 'go get'.
See 'go help modules' for an overview of module functionality.
Usage:
go mod <command> [arguments]
The commands are:
download download modules to local cache
edit edit go

最低0.47元/天 解锁文章
438

被折叠的 条评论
为什么被折叠?



