最近由于项目要求,需要对 IPFS 源码进行修改,由于自己在此之前没有接触过 Go 语言,在使用 go mod 导入本地自己开发的工具包的时候折腾了好久才搞定。
记录一下,以备后期查阅。
Go 语言的 Module 新特性是在 go1.11 的发布之后才支持的,这是 Go 语言新的一套依赖管理系统。
文章导读
1. 启用 Go Module
首先在默认情况下,$GOPATH 默认情况下是不支持 go mudules 的,当你执行 go mod init 的时候会遇到如下错误:
go: modules disabled inside GOPATH/src by GO111MODULE=auto; see ‘go help modules’
我们需要在执行 go mod 命令之前,导出 GO111MODULE 环境变量,你可以直接临时一次性导出,
为了后面方便,建议直接在 ~/.bashrc 文件中导出, 在文件末尾加入:
exportGO111MODULE=on
从这也表明了 go 将来是要利用 modules 机制去消灭 $GOPATH 的。
2. 创建 Go Module
我们现在 $GOPATH 下面先创建一个项目,并初始化 module
mkdir $GOPATH/src/gitee.com/rockyang/testmod -p
cd $GOPATH/src/gitee.com/rockyang/test-gomod
go mod init gitee.com/rockyang/test-gomod
go: creating new go.mod: module gitee.com/r