The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
TheF00L

引用的多个第三方包的间接依赖冲突的问题

  •  
  •   TheF00L ·
    caodonghui123 · Sep 28, 2023 · 2604 views
    This topic created in 1139 days ago, the information mentioned may be changed or developed.

    各位大佬写 go 的时候遇没遇到过 引用的多个第三方包的间接依赖冲突的问题 比如说,引用了两个第三方包 A 和 B ,他们都引用了别的包 C ,但版本不同; A 依赖 C v1.0 ; B 依赖 C v2.0 但 C 不向前兼容,go mod tidy 只使用最新的版本。 有没有优雅一点的解决办法,我现在想到的只有修改第三方包了

    12 replies  •  2023-10-07 09:32:08 +08:00
    bazingaterry
    bazingaterry
    Sep 28, 2023
    1
    这种情况下 C 的 package name 应该是 C/v2 ,不遵循的话就没办法了
    pannanxu
    pannanxu
    Sep 28, 2023
    2
    java 的包管理可以排除某个依赖里的子依赖。看看 go 是否有类似的功能呢?全局排除后再手动添加指定版本的依赖即可。
    skiy
    skiy
    Sep 28, 2023
    3
    应该不会吧?没遇到过这种问题。

    replace 看看。
    TheF00L
    TheF00L
    OP
    Sep 28, 2023
    4
    @bazingaterry 可能我例子有点问题,没有那么大的版本变化,就小版本变化,但没有向前兼容
    TheF00L
    TheF00L
    OP
    Sep 28, 2023
    5
    @skiy replace 我的理解是替代,他们引用的还是同一个版本,我想搞成各自引各自的
    TheF00L
    TheF00L
    OP
    Sep 28, 2023
    6
    @pannanxu 我没有查到 go 有这种方式😂
    fqy12300
    fqy12300
    Sep 28, 2023
    7
    PNPM ?
    thet
    thet
    Sep 28, 2023
    8
    目前没有好的办法,可以调整 A B 版本,让他们引用相同的 C 版本,或者就是你说的 fork 一个 C 了
    crysislinux
    crysislinux
    Sep 28, 2023 via Android
    9
    现在知道 npm 的难处了吧。这种问题要么避免,就不可能有什么好的解决办法。
    Aoang
    Aoang
    Sep 28, 2023
    10
    某些包更恶心,

    A v1.0 依赖 B v1.1
    B v1.2 依赖 A v1.0
    A v1.1 依赖 B v1.2
    ……


    一拉就是一生
    lysS
    lysS
    Sep 29, 2023
    11
    它现在报错是啥?
    TheF00L
    TheF00L
    OP
    Oct 7, 2023
    12
    @lysS 就是简单的某个函数没有,手动修改了之后,还报其他函数调用问题,没完没了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   905 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 21:07 · PVG 05:07 · LAX 13:07 · JFK 16:07
    ♥ Do have faith in what you're doing.