クラスパスで重複する JAR を検出するコードを持っている人はいますか?
背景: クラスパスに同じ JAR の 2 つのバージョンがある場合、非常に奇妙なことが起こる可能性があります。これは、Maven などのツールを使用している場合にも発生する可能性があります。依存関係を変更し、最初にクリーニングせずに WAR をビルドします。クリーンアップされていないためtarget/webapp/WEB-INF/lib
、依存関係が 2 回存在します。
これに対するセーフティネットはありますか?
それを行う Maven プラグインがあります: maven-duplicate-finder-plugin
[編集]単体テストで自分でやりたい場合は、使用してください
getClass().getClassLoader().getResources( "com/pany/package/Java.class" )
これが複数の を返す場合URL
、クラスパスに重複があります。
欠点は、これは過去に競合があった場合にのみ機能することです。良い面としては、ほんの数行のコード (またはヘルパー メソッドを記述する場合は 1 行) であり、ビルド サーバー上で機能します。