我试图弄清楚是否可以在没有 go 工具更新我的 go.mod 文件的情况下运行 go modvendor。
我特别go get package/subpackage@commit
并提交我的go.mod
使用正确的版本。
然后我跑go mod vendor
它会自动升级我刚刚专门设置的软件包的版本。
我查看了此页面,但无济于事:https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away
我需要使用供应商,因为我运行一个编辑一些供应商依赖的脚本。我正在查看以下构建流程:
GO111MODULE=on go get package/subpackge@commit
GO111MODULE=on go mod vendor
./Script/patch_vendors.sh --write
GO111MODULE=off go build
我的另一个选择是修改复制的源代码,无论 go mod 供应商将其下载到哪里,但是
不知道如何处理。
提前致谢
Per https://tip.golang.org/cmd/go/#hdr-Maintaining_module_requirements https://tip.golang.org/cmd/go/#hdr-Maintaining_module_requirements:
The go
命令本身会自动更新go.mod
文件保持标准格式和准确性require
声明。
任何找到不熟悉的导入的 go 命令都会查找包含该导入的模块,并自动将该模块的最新版本添加到 go.mod 中。 […]
任何 go 命令都可以确定缺少模块需求并且必须添加 [...]。
The go mod vendor
命令复制了包及其测试的所有传递导入,因此它将自动更新go.mod
文件以确保所有导入的包都存在。
所以这里的问题很可能是commit
你已经选择了package/subpackage
无法提供出现在程序的传递导入中的某些包。如果这是正确的,你应该发现go list all
, go test all
, and go mod tidy
全部对您的模块要求进行相同的编辑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)