在我的go应用程序(父项)中,我通过go get导入了go库(子项)并将其复制到父目录中。对于我的使用,我对“子级”进行了一些修改以扩展某些功能。我使用go模块,并在go.mod中使用“替换”来指向本地子级(具有扩展功能)路径,而不是全局$ GOPATH。
我很困惑如何在保持我扩展功能的同时不断使孩子与其上游回购保持同步。
//App directory
Parent.go
--Child/ (copied from $GOPATH)
go.mod
//go.mod
replace github.com/xyz/child => ./Child
将子级设置为git子模块在我的系统中效果很好。但是,当从另一个系统提取存储库时,子进程会从过去的版本$GOPATH
中获取它的依赖项,并且不会映射到正确的版本。
我试图设置git-submodule和go-module使其在任何环境中都能无缝运行。我试图解决这个问题已有一个多星期了。请帮助。
如果我理解正确,您应该分叉存储库,更改导入路径,使其与上游保持更新并使用它。
另一个选择是对第三方库做出贡献。
[replace
”指令不是长期使用,而是用于调试和非标准情况。