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

请教一个关于 Maven 依赖冲突的问题

  •  
  •   tangshiba · 2018-06-05 19:09:35 +08:00 · 2607 次点击
    这是一个创建于 2370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们项目使用的是 Spring Boot,它默认使用的 org.json 的依赖是 20140107 版本,项目需要接入阿里云的一个 sdk,这个项目中使用的 org.json 的版本是 20170516 的,新增了一些特性,实际调用的时候就会报 NoSuchMethod 的错误。

    这种情况有没有什么解决办法?

    谢谢。

    11 条回复    2018-06-05 23:26:20 +08:00
    JavaFirstMaster
        1
    JavaFirstMaster  
       2018-06-05 19:20:19 +08:00 via Android
    maven exclude 了解一下
    tangshiba
        2
    tangshiba  
    OP
       2018-06-05 19:30:17 +08:00
    @JavaFirstMaster 阿里云引用的版本比 Spring Boot 的高,在阿里云那里 exclude 的话还是会报错吧,又不好在 Spring Boot 里 exclude。
    justicelove
        3
    justicelove  
       2018-06-05 21:20:03 +08:00
    版本仲裁就得决定使用一个版本,既然阿里云用了高版本的特性,那就仲裁掉低版本好了, 如果没有向下兼容,那就不好弄了
    Foralrec
        4
    Foralrec  
       2018-06-05 21:28:09 +08:00
    @tangshiba 取高版本,不行就拆开做个 proxy 单独部署. 再不就用 jvm 隔离的框架
    FRankie222
        5
    FRankie222  
       2018-06-05 21:28:45 +08:00 via iPhone
    @tangshiba springboot 里面的没法 exclexclude 吗?
    wdlth
        6
    wdlth  
       2018-06-05 21:31:05 +08:00
    Spring Boot 的 org.json 不是 optional 的么……不显式引入是不包含的
    yanjinbin
        7
    yanjinbin  
       2018-06-05 21:35:09 +08:00
    idea 有个插件叫 maven helper 你把低版本的 exclude 掉就可以了 nosuchmethoderror 通常是在新版本的新方法在低版本找不到 也就是实际引用的是低版本
    lululau
        8
    lululau  
       2018-06-05 21:42:37 +08:00
    难道不是声明一个对 org.json 新版的直接依赖更好吗
    tangshiba
        9
    tangshiba  
    OP
       2018-06-05 22:40:53 +08:00
    @justicelove 架构师不是很同意这么弄。
    tangshiba
        10
    tangshiba  
    OP
       2018-06-05 22:48:10 +08:00
    @wdlth 我明天去找找看,可能其他项目引用了。
    billlee
        11
    billlee  
       2018-06-05 23:26:20 +08:00
    在 <dependencyManagement> 中指定依赖新版本的 org.json
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2636 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:07 · PVG 19:07 · LAX 03:07 · JFK 06:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.