Poison

关于 shade jar 作为依赖时因含有传递依赖导致传递依赖被传递的问题

在之前的场景中,我经常使用 Apache Maven Shade Plugin 给 Hive-UDF、Spark 应用等处理应用所需的依赖版本与系统库依赖版本不一致且不能兼容的问题,今天的场景为需要将一个工程的依赖进行重定位,且该工程构建的 fat jar 需要作为依赖被其他工程引入,但是引入后发现虽然设置的类被进行了重定位,但是构建的 jar 中的 pom.xml 依然含有之前的传递依赖,导致可能影响到引入依赖工程的依赖管理,查询了文档,发现这个持续 11 年的问题已经在 maven-shade-plugin 的 3.0.0 版本中被修复。

Reference

NOTES-shading-dependencies
MSHADE-36 Add option to include dependency reduced POM instead of original one - ASF JIRA