Go:go mod vendor 使用

本文介绍了如何使用gomodvendor工具将Go项目的依赖库下载到项目内部,以便在无公网或内网环境进行编译。通过gomodvendor,可以创建一个vendor目录,包含所有必要的依赖包,确保项目在各种环境下都能正常构建,同时避免依赖库丢失的问题。文章详细讲解了使用过程、原理,并提供了相关参考资料。

Go:go mod vendor 使用


1.背景

我们基于 go mod 机制来管理我们项目的依赖库版本,其中 go.mod 记录了依赖库版本信息。

在这里插入图片描述
一般第三方依赖库(包括公司内网gitlab上的依赖库),其源码都不被包含在我们的项目内部,而是在编译的时候go连接公网、内网下载到本地GOPATH,然后编译。

问题是,有些时候需在无公网、无内网(无法连接内网gitlab)的情况下编译go项目,如何做呢?

在此时,需使用go mod vendor将项目的依赖库下载到项目内部,作为项目的一部分来编译。

PS:

  1. 虽然通常不会也不需要在无公网、无内网环境实时编译,因为go的可移植性很好,常以可执行文件方式交付部署,但并不能排除此种可能;
  2. 防止依赖库因为某种原因被删除、移动,导致找不到依赖并编译失败;
  3. 对新手来说,下载一些墙外的依赖可能略有困难;
  4. 其他…

总之,我们的目的是使用 go mod vendor,将项目的依赖库下载到项目内部,即项目中包含依赖库源码,依赖库如同项目的一部分,也受到项目的版本管控(git、svn…)。


2.环境

go环境:

D:\workspace\demo>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\梁翠翠\AppData\Local\go-build
set GOENV=C:\Users\梁翠翠\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值