【问题标题】:How to modify and maintain an imported go dependency?如何修改和维护导入的 go 依赖?
【发布时间】:2019-12-09 07:09:09
【问题描述】:

在我的 go app(parent) 中,我通过 go get 导入了一个 go library(child) 并将其复制到父目录。为了我的使用,我在“child”中进行了一些修改以扩展某些功能。我使用 go 模块并在 go.mod 中使用“替换”来指向本地子路径(具有扩展功能)而不是全局 $GOPATH。

我很困惑如何在保持我的扩展功能的同时不断地让孩子与其上游存储库保持同步。

//App directory    
Parent.go
--Child/ (copied from $GOPATH)
go.mod

//go.mod
replace github.com/xyz/child => ./Child

将孩子设置为 git-submodule 在我的系统中运行良好。但是,当从另一个系统中提取 repo 时,孩子会从过去版本的 $GOPATH 中获取它的 go 依赖项,并且不会映射到正确的版本。

我试图设置 git-submodule 和 go-module 以在任何环境中无缝地为我的应用程序工作。我正在尝试解决这个问题一个多星期。请帮忙。

【问题讨论】:

    标签: git go git-submodules go-modules


    【解决方案1】:

    如果我理解正确,您应该分叉存储库,更改导入路径,使其与上游保持更新并使用它。

    另一种选择是为第三方库做出贡献。

    replace 指令更多地不是用于长期使用,而是用于调试和非标准情况。

    【讨论】:

      猜你喜欢
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 2014-04-11
      相关资源
      最近更新 更多