我试图弄清楚是否可以在没有 go 工具更新我的 go.mod 文件的情况下运行 go mod vendor。
我专门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
我需要使用 vendor 因为我运行了一个脚本来编辑一些 vendored deps.,我正在查看以下构建流程:
GO111MODULE=on go get package/subpackge@commit
GO111MODULE=on go mod vendor
./Script/patch_vendors.sh --write
GO111MODULE=off go build
Run Code Online (Sandbox Code Playgroud)
我的另一个选择是修改复制的源代码,无论 go mod 供应商将其下载到何处,但不确定如何处理。
提前致谢
根据https://tip.golang.org/cmd/go/#hdr-Maintaining_module_requirements:
\n\n\n\n\n该
\n\ngo
命令本身会自动更新go.mod
文件以保持标准格式和语句的准确性require
。任何找到不熟悉的导入的 go 命令都会查找包含该导入的模块,并自动将该模块的最新版本添加到 go.mod 中。[\xe2\x80\xa6]
\n\n任何 go 命令都可以确定缺少模块要求,必须添加 [\xe2\x80\xa6]。
\n
该go mod vendor
命令复制包及其测试的所有传递导入,因此它将自动更新文件go.mod
以确保所有导入的包都存在。
因此,这里的问题可能是commit
您选择的无法package/subpackage
提供出现在程序的传递导入中的某些包。如果这是正确的,您应该会发现go list all
、go test all
和go mod tidy
全部对您的模块要求进行相同的编辑。
归档时间: |
|
查看次数: |
11070 次 |
最近记录: |