27

クラスパスで重複する JAR を検出するコードを持っている人はいますか?

背景: クラスパスに同じ JAR の 2 つのバージョンがある場合、非常に奇妙なことが起こる可能性があります。これは、Maven などのツールを使用している場合にも発生する可能性があります。依存関係を変更し、最初にクリーニングせずに WAR をビルドします。クリーンアップされていないためtarget/webapp/WEB-INF/lib、依存関係が 2 回存在します。

これに対するセーフティネットはありますか?

4

5 に答える 5

6

それを行う Maven プラグインがあります: maven-duplicate-finder-plugin

[編集]単体テストで自分でやりたい場合は、使用してください

getClass().getClassLoader().getResources( "com/pany/package/Java.class" )

これが複数の を返す場合URL、クラスパスに重複があります。

欠点は、これは過去に競合があった場合にのみ機能することです。良い面としては、ほんの数行のコード (またはヘルパー メソッドを記述する場合は 1 行) であり、ビルド サーバー上で機能します。

于 2012-05-02T09:10:08.620 に答える