Maven 同时引用不兼容新老版本jar中的同名class冲突问题fix小记

问题:

在tomcat里的同一个app里,已经有个old version的class被别人用到(也加到dependency里面了),我有个新的功能开发,里面引用了一个该class的最新的版本,我怎么在我的jar包里面隔离另一个旧版本的class?

类重定位

官网是“Relocating Classes”,如果一个uber-jar会被其他项目引用,uber-jar中依赖的类可能会导致类定位冲突(由于不同版本的jar包引起),我们可以通过shade插件来将被隐藏的类重定位以使该类只在该uber-jar中使用,这种方式也经常被用来解决jar包冲突问题。

让 org.codehaus.plexus.util 包和它的子包移动到 org.shaded.plexus.util包中,而类Xpp3Dom和其他的一些则保留在原来的package中。

参考链接

https://blog.csdn.net/qq_35799003/article/details/70226547

你可能感兴趣的:(Maven 同时引用不兼容新老版本jar中的同名class冲突问题fix小记)