在对 EasyNTS 的开发项目中,采用了 gomod 作为项目的管理工具。

网络穿透/视频拉转推服务系统EasyNTS通过gomod管理工具编译提示缺少依赖库解决方法-LMLPHP

使用 gomod 管理项目,就不需要非得把项目放到GOPATH指定目录下,可以在磁盘的任何位置新建一个项目,包含go.mod文件的目录也被称为模块根,也就是说,go.mod 文件的出现定义了它所在的目录为一个模块。

编译过程中,我们在一台新的机器中拉取完代码后,系统总是提示缺少对应的依赖库。gitee.com/easydarwin/EasyGoLib 是公司的私有仓库地址。

网络穿透/视频拉转推服务系统EasyNTS通过gomod管理工具编译提示缺少依赖库解决方法-LMLPHP

因为采用 gomod 管理项目,所以对于 GitHub 上面的部分包以来很难下载下来,因此一般会设置代理。即:部分组织定时同步国外 GitHub 上的代码库,设置代理后从这些组织的代理地址获取代码库。

对于 EasyGoLib 这个库来说,是存储在公司的私有仓库下,其他组织的代理库是无法获取到的,因此设置部分仓库不从代理下载即可解决该问题。

解决方案即是修改 Golang 的 env 中的 GONOSUMDB 和 GONOPROXY 两个环境变量,设置 gitlab.com 和 gitee.com 两个域名的依赖不从代理网站下载。

GOPROXY=https://goproxy.cn,direct;
GONOSUMDB=gitlab.com,gitee.com;
GONOPROXY=gitlab.com,gitee.com

设置完毕后,即可正常运行项目。

网络穿透/视频拉转推服务系统EasyNTS通过gomod管理工具编译提示缺少依赖库解决方法-LMLPHP

网络穿透/视频拉转推服务系统EasyNTS通过gomod管理工具编译提示缺少依赖库解决方法-LMLPHP
05-08 05:18