
1 wolfie Nov 3, 2021 只能看 v2 能不能兼容 v1 吧。 |
2 dcsuibian Nov 3, 2021 maven-shade-plugin??? |
3 pelloz Nov 3, 2021 将这个功能分开为两个项目... |
4 xarthur Nov 3, 2021 不懂为什么需要这种需求,感觉是个 XY 问题。 |
5 ic2y Nov 3, 2021 maven-shade-plugin 对某个冲突包进行重命名 |
6 ic2y Nov 3, 2021 maven-shade-plugin 对某个冲突包进行重命名; 或者,依赖某些公共库的不同版本共存,自己实现类加载器好了,分别自行加载不同版本的库。 |
7 renmu123 Nov 3, 2021 via Android 趁这个机会把 v1 升级到 v2 |
8 Finest Nov 3, 2021 via Android 有源码好办,没有就麻烦 |
11 realrojeralone Nov 3, 2021 #2 正解,很多开源项目都会 shade 其他项目,以避免 jar 包冲突( guava 和 netty 应该是被 shade 最多的了) |
12 kingfalse Nov 4, 2021 via Android 自己 new 一个 classloader ,别说不同版本的 jar 包了,就是你在 spring boot 里面再启动一个 spring boot 都可以 |
13 Bronya Nov 4, 2021 遇到过这个问题,方案是改名,不过用的 jarjar.jar 进行的改名 过程我记录在这里了 https://www.cnblogs.com/lixin-link/p/15362918.html ,你可以试试。 |
14 Bronya Nov 4, 2021 我刚才试了下,用 maven-shade-plugin 比用 jarjar.jar 方便的多,推荐使用! |
15 Bromine0x23 Nov 4, 2021 感觉只能 shade 一个新包出来。 有遇到过这种场景,库的 groupId 和 artifactId 没变,但是实际的 package 变了,两个版本实际能共存,但是 Maven 中无法同时导入。(不过忘了是哪个库,也忘了咋解决的了) |