Go模块和依赖修改 vendor

标签 go go-modules govendor

我正在尝试将一个 Go 项目转换为新的模块标准,但我在一个依赖项上遇到了问题。

该存储库提供了一个库(在本例中为 golang.org/x/net/html)以向该库添加一些功能;这意味着它已经修改了 vendored 依赖项(向结构添加了一个方法)。

所以问题是,在执行 go mod init 之后,当我执行 go get ./... 时,系统会提示调用该添加的功能,因为它忽略修改后的 vendor 并尝试导入上游库。

有没有办法让 go mod 知道它应该使用 vendored 依赖项?

最佳答案

你可以试试replace指示。类似的东西

首先

cd ./vendor/golang.org/x/net/html
go mod init

然后在你的根 go.mod

module your/super/module

replace golang.org/x/net/html => ./vendor/golang.org/x/net/html

require golang.org/x/net/html v0.0.0

请注意,requirereplace 都是必需的。

关于Go模块和依赖修改 vendor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55547592/

相关文章:

go - 如何在 Go 中的 byte slice 中使用变量

go - 确定标志是否确实在 golang 的 cobra/viper 中的(子)命令调用中传递

file - 无法使用 gob 将数据正确存储在文件中

go - 如何将不遵守主要子文件夹约定的 Go 包的 v2.0.0 作为模块引用

go - 是否可以在不运行 go install 的情况下更新本地软件包?

go - 如何为 REST 服务生成代码覆盖率

go - 如何在 go.mod 中最好地声明 golang 依赖版本?

go - 如何使用 go mod vendor 从 GOPATH 复制 deps?

go - 运行 dep 时出错确保 : Grouped write of manifest, 锁和 vendor :无法统计 VerifyVendor 声称存在的文件