gpt4 book ai didi

go - 如何覆盖 go 模块中的依赖项?

转载 作者:IT王子 更新时间:2023-10-29 02:34:59 29 4
gpt4 key购买 nike

dep 中,您可以选择覆盖依赖项并让它指向不同的 repo,例如以下 https://github.com/kubermatic/glog-logrus库一需要将以下行添加到 Gopkg.toml 文件中:

[[override]]
name = "github.com/golang/glog"
source = "github.com/kubermatic/glog-logrus"

然后在代码库中 import "github.com/golang/glog。但是,在 go modules 中我没有看到这样的选项?这让我认为唯一的解决方案是改变导入到 github.com/kubermatic/glog-logrus

谢谢!

最佳答案

这就是 replace 指令的用途。

引用自 wiki Go 1.11 Modules: When should I use the replace directive?

The replace directive allows you to supply another import path that might be another module located in VCS (GitHub or elsewhere), or on your local filesystem with a relative or absolute file path. The new import path from the replace directive is used without needing to update the import paths in the actual source code.

因此将其添加到主模块的 go.mod 文件中:

replace (
github.com/golang/glog => github.com/kubermatic/glog-logrus v0.0.0
)

您还可以指示 go 工具为您进行此编辑:

go mod edit -replace github.com/golang/glog=github.com/kubermatic/glog-logrus@v0.0.0

(使用您感兴趣的版本。)

在此之后,当您导入 github.com/golang/glog 时,将使用 github.com/kubermatic/glog-logrus(无需更改导入语句) .

关于go - 如何覆盖 go 模块中的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57266010/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com