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

我们项目使用的是 Spring Boot,它默认使用的 org.json 的依赖是 20140107 版本,项目需要接入阿里云的一个 sdk,这个项目中使用的 org.json 的版本是 20170516 的,新增了一些特性,实际调用的时候就会报 NoSuchMethod 的错误。
这种情况有没有什么解决办法?
谢谢。
1 JavaFirstMaster Jun 5, 2018 via Android maven exclude 了解一下 |
2 tangshiba OP @JavaFirstMaster 阿里云引用的版本比 Spring Boot 的高,在阿里云那里 exclude 的话还是会报错吧,又不好在 Spring Boot 里 exclude。 |
3 justicelove Jun 5, 2018 版本仲裁就得决定使用一个版本,既然阿里云用了高版本的特性,那就仲裁掉低版本好了, 如果没有向下兼容,那就不好弄了 |
5 FRankie222 Jun 5, 2018 via iPhone @tangshiba springboot 里面的没法 exclexclude 吗? |
6 wdlth Jun 5, 2018 Spring Boot 的 org.json 不是 optional 的么……不显式引入是不包含的 |
7 yanjinbin Jun 5, 2018 idea 有个插件叫 maven helper 你把低版本的 exclude 掉就可以了 nosuchmethoderror 通常是在新版本的新方法在低版本找不到 也就是实际引用的是低版本 |
8 lululau Jun 5, 2018 难道不是声明一个对 org.json 新版的直接依赖更好吗 |
9 tangshiba OP @justicelove 架构师不是很同意这么弄。 |
11 billlee Jun 5, 2018 在 <dependencyManagement> 中指定依赖新版本的 org.json |