Maven-shade-plugin, uber-jar 和重叠类
2022-09-03 02:15:05
我想使用Maven-shade-plugin来创建uber-jar。但是当我调用命令时,Maven报告有一些重叠的类。我附加了所有有问题的重叠,其中一些是因为库(Log4J)的旧版本和新版本引起的,但其中一些似乎具有相同的类 - 例如javax.mail和mailapi / smtp / imap等。mvn package
在这种情况下,最好的办法是什么?有没有一些关键的方法来决定哪个重叠是安全的忽略哪个需要是正确的?
- mailapi-1.4.3.jar, javax.mail-1.5.0.jar define 166 overlappping classes
- spring-2.5.6.SEC03.jar, spring-tx-3.1.4.RELEASE.jar define 176 overlappping classes:
- spring-beans-3.1.4.RELEASE.jar, spring-2.5.6.SEC03.jar define 283 overlappping classes:
- slf4j-log4j12-1.7.5.jar, slf4j-impl-2.0-beta2.jar define 3 overlappping classes:
- spring-2.5.6.SEC03.jar, spring-context-support-3.1.4.RELEASE.jar define 55 overlappping classes:
- aopalliance-1.0.jar, spring-2.5.6.SEC03.jar define 9 overlappping classes:
- imap-1.5.0.jar, javax.mail-1.5.0.jar define 87 overlappping classes:
- commons-logging-api-1.1.jar, commons-logging-1.1.3.jar define 19 overlappping classes:
- spring-2.5.6.SEC03.jar, spring-core-3.1.4.RELEASE.jar define 161 overlappping classes:
- spring-2.5.6.SEC03.jar, spring-context-3.1.4.RELEASE.jar define 326 overlappping classes:
- log4j12-api-2.0-beta3.jar, log4j-1.2.17.jar define 23 overlappping classes:
- spring-aop-3.1.4.RELEASE.jar, spring-2.5.6.SEC03.jar define 237 overlappping classes:
- spring-jdbc-3.1.4.RELEASE.jar, spring-2.5.6.SEC03.jar define 239 overlappping classes:
- quartz-1.8.6.jar, quartz-jobs-2.2.1.jar define 15 overlappping classes:
- smtp-1.5.0.jar, javax.mail-1.5.0.jar define 17 overlappping classes:
- spring-asm-3.1.4.RELEASE.jar, spring-2.5.6.SEC03.jar define 31 overlappping classes:
编辑:这个应用程序“A”用作Maven依赖项我的另一个Java应用程序 - 我将此应用程序称为“B”。此 B 应用程序使用 javax.mail 版本 1.5.1。此库也使用第一个应用程序。但是当我调用 mvn package 命令时,Maven 注意到 .javax.mail-api-1.5.1.jar, javax.mail-1.5.1.jar define 135 overlappping classes
这是这个问题,如果是这样,如何解决它,或者我可以忽略它吗?