Golang使用go.mod配置加载本地模块

如何在当前项目中加载另一个本地正在开发的模块呢?go 提供了replace命令,当我们遇上有些包无法下载(暂未上传或需要外网访问)时,我们可以在mod文件中用replace命令,让程序去指定的地方找代码,如:

看一下我们的go.mod的配置
go.mod

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


module github.com/entere/micro-examples

go 1.13

require (
github.com/golang/protobuf v1.3.2
github.com/micro/go-micro v1.15.1
)

replace (
//暂未上传,找本地包代替
github.com/entere/micro-examples => /Users/entere/github/micro-examples
//需要外网访问,找github上的包代替
golang.org/x/crypto => github.com/golang/crypto latest
)

默认使用 github.com/entere/micro-examples 包会到 github 上去下载,但这个包还在本地开发中并未提交到github上,那么可以通过 replace 配置来重定向当前项目对该包的加载路径:

1
replace github.com/entere/micro-examples => /Users/entere/github/micro-examples