将带有/vendor 目录的现有项目转换为使用 Go 模块(go 版本 1.12)。我执行 go mod init
生成 go.mod
文件。然后我执行 go get -u ./...
来填充 go.mod 文件。在此期间,它会尝试在 github 上找到一个不再存在的包。它在我的/vendor 目录中出售。
在我可以升级我的代码以使用不同的包之前,我如何才能继续转换为使用模块?也就是说,我想保留一些东西 vendored(我在/vendor 下也有一些修改过的代码),而其他东西则由 go modules 处理。
最佳答案
您不能混合使用 vendor
目录行为和模块,每种依赖性解析方法都相互排斥。您可以自己在 go mod
可以找到它的地方重新发布丢失的包,或者您可以将它直接重定向到模块中现有的 vendored 源。
要重定向模块的源代码,请使用 replace
directive在 go.mod 文件中
替换缺失/包 v0.0.1 => ./vendor/missing/package
关于go - 转换/vendor 到 Go 模块,找不到提供包错误的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56010803/