You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言:仅对特定依赖包执行vendor化的问题

仅Vendor特定依赖的解决方案

要实现只对go-z3进行vendor化,同时避免go mod tidy报错,你可以按照以下步骤操作:

步骤1:生成完整的vendor目录(基础准备)

先执行标准vendor命令生成所有依赖的完整结构,为后续调整做准备:

go mod vendor

步骤2:删除不需要vendor的依赖

从vendor/github.com目录下移除你不想vendor的模块(比如golang/glog):

rm -rf vendor/github.com/golang/glog

步骤3:修正vendor/modules.txt文件

编辑vendor/modules.txt,保留go.mod中所有显式依赖的头部行,但仅保留需要vendor的模块的包路径:

修改后的modules.txt示例:

# github.com/golang/glog v1.1.1
## explicit; go 1.19
# github.com/mitchellh/go-z3 v0.0.0-20191228203228-4cbedeba863f
## explicit
github.com/mitchellh/go-z3
  • 保留glog的版本行和## explicit标记,确保与go.mod声明一致,避免校验报错
  • 删除glog对应的包路径行,告知Go该模块未被vendor,会自动从模块缓存或远程仓库获取
  • 完整保留go-z3的条目(版本行、标记、包路径)

步骤4:验证效果

执行go mod tidy,此时不会再出现vendoring不一致的错误:

go mod tidy

操作完成后,项目仅会vendorgo-z3模块,其他依赖(如glog)会通过Go模块机制正常获取,同时满足go-z3文档对vendor化的要求。

内容的提问来源于stack exchange,提问作者diviquery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:17:35