在dep
中,您可以选择覆盖依赖项,并使其指向其他存储库,例如,在以下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模块中,我看不到这样的选择吗?这使我认为唯一的解决方案是将导入更改为github.com/kubermatic/glog-logrus
。
谢谢!
答案 0 :(得分:3)
这是false
指令的作用。
从Wiki Go 1.11 Modules: When should I use the replace directive?引用
replace
指令允许您提供另一个导入路径,该路径可能是位于VCS(GitHub或其他地方)中或本地文件系统上具有相对或绝对文件路径的另一个模块。使用replace
指令中的新导入路径,而无需更新实际源代码中的导入路径。
因此,将其添加到主模块的replace
文件中:
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
(无需更改导入语句)。