小编rhu*_*idh的帖子

如何导入同一个go模块的两个版本?

我有这个问题:

  • 模块 A 导入模块 X v0.1.0
  • 模块 B 导入模块 X v0.2.0
  • 我在我的项目中导入了 A 和 B。

Golang 选择了 X v0.2.0 并称它很好。但这并不好。v0.1 和 v0.2 的不同足以导致 A 中断并且我的项目无法编译。

我必须采取什么措施来解决这个问题?

Go 的官方立场似乎是“X 的开发者做错了,应该在重大更改后发布一个主要版本”。但这对目前的情况没有帮助。

我找不到实际解决方案的讨论。


更多信息

  • 上面是一个简化,A 和 B 还有一些依赖项也依赖于 X。
  • 这个项目需要由一群人来维护。因此,将 A 和 B 更新到新版本非常简单。
  • 这是安全关键型代码,因此依赖项不匹配导致的细微错误值得关注。

我尝试过的事情:

  • 分叉 A 和 X,更改整个导入路径,并更新 A 的go.mod. 它可以工作,但会使这些模块的更新缓慢且容易出错。
  • 从 A 和 X 中复制并粘贴所需的代码以避免导入它。而且速度慢且容易出错。
  • 深入研究了 的创意应用go mod vendor,但找不到解决方案。

go go-modules

14
推荐指数
2
解决办法
8696
查看次数

标签 统计

go ×1

go-modules ×1