11

go mod 版本冲突问题

 2 years ago
source link: https://www.v2ex.com/t/847721
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

V2EX  ›  Go 编程语言

go mod 版本冲突问题

  panda666 · 10 小时 0 分钟前 · 593 次点击
项目中使用了第三方库 A ,A 依赖 go.opentelemetry.io/otel v0.x.x ,现在要在项目加入第三方库 B ,B 依赖 go.opentelemetry.io/otel v1.x.x

otel 的这两个版本不兼容,指定 v0.x.x 还是 v1.x.x 都会报错

gopkg.in/open-telemetry/opentelemetry-go.v1 试过了,会报错

还有什么其它解决办法吗?
10 条回复    2022-04-18 21:21:57 +08:00

FrankAdler

FrankAdler      9 小时 31 分钟前

按版本引入,然后使用别名
import (
v1 xxx.com/v1
v2 xxx.com/v2
)

panda666

panda666      9 小时 21 分钟前 via Android

@FrankAdler 没 v1 这个 path

FrankAdler

FrankAdler      9 小时 15 分钟前

@panda666 #2 go 可以基于 git commit id 或者 tag 来当作版本啊

panda666

panda666      9 小时 10 分钟前 via Android

@FrankAdler 版本和 path 是两个东西吧

Wuuuu

Wuuuu      8 小时 54 分钟前

感觉不好搞,因为 golang 用的是 semantic version number ,0.x.x 只是测试版本,1.x.x 都发布了 B 还不升级……如果是 1.0.0 2.0.0 还能用 /V2 这种方法。现在这样僵住了。

GopherDaily

GopherDaily      8 小时 8 分钟前

otel 这个是比较特殊的情况,自己给依赖 v0.x.y 的库提个 PR ,升级到 v1.x.y

timpaik

timpaik      8 小时 5 分钟前 via Android

试试在 go.mod 里用 replace

FrankAdler

FrankAdler      8 小时 3 分钟前 via iPhone

@panda666 v0 不更新了 fork 下改下 go.mod 里面的 moudle 吧

FrankAdler

FrankAdler      8 小时 3 分钟前 via iPhone

replace 我试了下 貌似没跑通

hzzhzzdogee

hzzhzzdogee      6 小时 59 分钟前

1. replace
2. 自己 fork 一份

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK