在其中,dep您可以选择覆盖依赖项,并使其指向其他存储库,例如在以下https://github.com/kubermatic/glog- logrus库中,您需要在Gopkg.toml文件中添加以下几行:
dep
[[override]] name = "github.com/golang/glog" source = "github.com/kubermatic/glog-logrus"
然后在代码库中import "github.com/golang/glog。但是,在go模块中,我看不到这样的选择吗?这使我认为唯一的解决方案是将import更改为github.com/kubermatic/glog- logrus。
import "github.com/golang/glog
github.com/kubermatic/glog- logrus
谢谢!
这就是replace指令的目的。
replace
引用Wiki Go 1.11模块:我何时应该使用replace指令?
该replace指令允许您提供另一个导入路径,该路径可能是VCS(GitHub或其他地方)中的另一个模块,或者是具有相对或绝对文件路径的本地文件系统上的另一个模块。replace使用指令中的新导入路径,而无需更新实际源代码中的导入路径。
因此,将其添加到go.mod您的主模块文件中:
go.mod
replace ( github.com/golang/glog => github.com/kubermatic/glog-logrus v0.0.0 )
您还可以指示该go工具为您进行此修改:
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将被使用(无需更改导入语句)。
github.com/golang/glog