在 Go 语言模块化编程 ( 五 ) - go module proxies ( 中 ) 文章中我们学习了如何搭建自己的 go module 代理。这是一个非常重要的能力,尤其是公司开发,因为很多内部不方便对外,房子自己的内网服务器上是子安全的。
其实脱臼 ( offline ) 安装 go module 还有另一种方法,就是直接使用本地硬盘上的模块镜像
使用本地目录作为 go module 存储库
使用本地目录作为存储库,其实就不需要 proxy.go
这个代理了。我们可以直接设置环境变量 GOPROXY
为一个完全限定目录即可。
export GOPROXY=file:///Users/yufei/devel/proxy
注意: 是
file:///
,三个反斜杠。
测试之前,我们需要将先前的下载的缓存删掉,打开 GOPATH/pkg/mod
目录,删除 github.com/ijoywan/demomod
和 cache/download/github.com/ijoywan/demomod
两个目录
然后运行下面的命令
[yufei@www.twle.cn test]$ go build
输出结果如下
go: finding github.com/ijoywan/demomod v1.0.0 go: downloading github.com/ijoywan/demomod v1.0.0
OK. 编译成功
其实,使用本地目录这种机制,是不常用的,公司或团队应该目录搭建自己的 proxy
。
因为本地目录与已经在 $GOPATH/pkg/mod
下维护的本地缓存没有太大的不同,但我们仍然很高兴知道它的工作原理
其实,已经有一个开放源代码的 proxy 了,地址就是 https://github.com/gomods/athens ,如果你有兴趣,可以使用它来创建自己的代理或者创建一个 go module 中央仓库
目前尚无回复