Maven-shade-plugin を使用して uber-jar を作成したいと考えています。しかし、mvn package
コマンドMavenを呼び出すと、重複するクラスがいくつかあることが報告されます。問題のあるオーバーラップをすべて添付します。一部は、ライブラリ (Log4J) の古いバージョンと新しいバージョンが原因で発生しますが、一部は同じクラス (javax.mail と mailapi/smtp/imap など) を持っているようです。
この状況で何をするのが最善ですか?どのオーバーラップが正しい必要があるかを無視しても安全かを判断する方法はありますか?
- 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」は、別の Java アプリケーションを Maven 依存関係として使用します。このアプリケーションを「B」と呼びます。この B アプリケーションは、javax.mail ver 1.5.1 を使用します。このライブラリも最初のアプリケーションを使用します。しかし、mvn package コマンドを呼び出すと、Maven はjavax.mail-api-1.5.1.jar, javax.mail-1.5.1.jar define 135 overlappping classes
.
この問題はありますか?もしそうなら、どうすれば解決できますか?それとも無視できますか?