简介
1.11版本初步引入的GoModule模块。1.12版本正式开始支持。GoModule是官方提供的包管理解决方案。通过GoModule,开发者可以把工程放在GOPATH之外的位置。相比于之前的包管理方案: dep,vendor。GoModule的管理方案更加灵活。
我们运行go mod help来看看GoModule中有哪些命令。
这里主要介绍初始化相关的命令 go mod init [module]:初始化.mod 包管理文件到当前工程。 go mod vendor:vendor版本的解决方案,将依赖复制到vendor下面。 go mod tidy:移除未用的模块,以及添加缺失的模块。 go mod verify:验证所有模块是否正确。
下面我们看看怎么在工程中添加GoModule支持。
初始化GoModule
首先我们在GOPATH之外创建一个工程
目录结构如下:
代码如下,引用了logrus包:
go build当前代码
报错,当前没有包含module,没有发现module支持。
1.初始化module go mod init kimiProject
如下:
工程中自动添加了mod的支持文件
默认是模块名和当前的golang版本
当前我们再build工程,却发现报了新的错误:
主要是因为golang.org被墙了(高墙不胜寒),我们需要用替代地址去替换掉当前的地址。
在go.mod文件添加如下代码: replace ( golang.org/x/crypto => github.com/golang/crypto latest golang.org/x/sys => github.com/golang/sys latest
)
如图
我们再执行build
发现当前编译成功了。而且从替换地址下载了依赖库。我们看看go.mod文件被写入了什么:
GoModule自动给依赖文件加了版本号。并且把当前需要logrus require了进来。
同时也生成了可执行文件
在GOPATH/pkg/mod/cache/download/ 生成了对应的缓存文件
以上就是在一个空白工程中添加GoModule包管理了。
|
请发表评论