V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuxu
V2EX  ›  Java

spring-boot 如何引入同一个包多个版本

  •  
  •   liuxu · 76 天前 · 1267 次点击
    这是一个创建于 76 天前的主题,其中的信息可能已经有所发展或是发生改变。
    maven 管理,项目依赖有一个包 a:v1 ,现在引入一个新包 b ,但是 b 依赖 a:v2 ,而且 a:v1 和 a:v2 不兼容,这种情况都是怎么处理的
    15 条回复    2021-11-04 10:20:37 +08:00
    wolfie
        1
    wolfie  
       76 天前
    只能看 v2 能不能兼容 v1 吧。
    dcsuibian
        2
    dcsuibian  
       76 天前   ❤️ 2
    maven-shade-plugin???
    pelloz
        3
    pelloz  
       76 天前
    将这个功能分开为两个项目...
    xarthur
        4
    xarthur  
       76 天前
    不懂为什么需要这种需求,感觉是个 XY 问题。
    ic2y
        5
    ic2y  
       76 天前
    maven-shade-plugin 对某个冲突包进行重命名
    ic2y
        6
    ic2y  
       76 天前   ❤️ 1
    maven-shade-plugin 对某个冲突包进行重命名;

    或者,依赖某些公共库的不同版本共存,自己实现类加载器好了,分别自行加载不同版本的库。
    renmu123
        7
    renmu123  
       76 天前 via Android
    趁这个机会把 v1 升级到 v2
    hand515
        8
    hand515  
       76 天前 via Android
    有源码好办,没有就麻烦
    liuxu
        9
    liuxu  
    OP
       76 天前 via Android
    @ic2y 多谢,我看看怎么整


    @renmu123 目前是在升级到 v2 ,但是解决了一个问题却引出千千万万个问题,我看怎么搞
    liuxu
        10
    liuxu  
    OP
       76 天前 via Android
    @hand515 b 没有源码,正在从项目入手
    realrojeralone
        11
    realrojeralone  
       76 天前
    #2 正解,很多开源项目都会 shade 其他项目,以避免 jar 包冲突( guava 和 netty 应该是被 shade 最多的了)
    kingfalse
        12
    kingfalse  
       75 天前 via Android   ❤️ 1
    自己 new 一个 classloader ,别说不同版本的 jar 包了,就是你在 spring boot 里面再启动一个 spring boot 都可以
    Bronya
        13
    Bronya  
       75 天前
    遇到过这个问题,方案是改名,不过用的 jarjar.jar 进行的改名
    过程我记录在这里了 https://www.cnblogs.com/lixin-link/p/15362918.html ,你可以试试。
    Bronya
        14
    Bronya  
       75 天前   ❤️ 1
    我刚才试了下,用 maven-shade-plugin 比用 jarjar.jar 方便的多,推荐使用!
    Bromine0x23
        15
    Bromine0x23  
       75 天前
    感觉只能 shade 一个新包出来。
    有遇到过这种场景,库的 groupId 和 artifactId 没变,但是实际的 package 变了,两个版本实际能共存,但是 Maven 中无法同时导入。(不过忘了是哪个库,也忘了咋解决的了)
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1140 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:56 · PVG 05:56 · LAX 13:56 · JFK 16:56
    ♥ Do have faith in what you're doing.