1

私は多くのモジュール (ポートレット) を含む大きなプロジェクトに取り組んでおり、依存関係の管理はますます難しくなっています。一部の jar がすべてのポートレットで使用されていて、まだサーバーに提供されていないなどの問題があるため、それらをすべての WEB-INF/lib に含めたり、依存関係が宣言されているがまったく使用されていない、などの問題があります。
私はその混乱を片付けようとしていますが、間違いを犯して手遅れになるまでそれを検出しないことを恐れています.
依存関係を「提供済み」としてマークし、テストするのを忘れた奇妙なビジネスケースで必要であり、サーバーがそのような依存関係を提供していないとしましょう。
組織は官僚的であり、サーバーにアクセスして、特定の jar の実際の存在を確認することはできません。戦争がインストールされたら、依存関係をチェックして、すべてがそこにあり、アクセス可能かどうかを確認する方法はありますか?
war ファイルには META-INF に pom.xml のコピーが含まれているため、少なくとも情報の一部はそこにあります。
次のようなものを見たいです

INFO: Checking provided dependency org.drools-drools-core-4.0.7........done  
ERROR: Checking provided dependency org.drools-drools-compiler-4.0.7........FAIL

ログで...

4

1 に答える 1

0

あなたが話していることはすべて実行時に起こるので、そのようなツールはありません。すべてのClassNotFoundExceptionログをトレースし、GrepCodeを使用するなど、特定のクラスを含むアーティファクトを見つける必要があります。それは私が少し前に同じようなケースを持っていることを理解した最高です。はるかに簡単なのは、を実行して、宣言された未使用の依存関係があるかどうか、または宣言されていない依存関係があるかどうか(推移的として)を確認することmvn dependency:analyzeです。通常はかなりうまく機能しますが、Maven 2の依存関係解決を使用しているため、Maven 3を使用しているときに嘘をつくことがあります。私の経験では、それほど頻繁には発生しませんが、発生して問題が発生する場合があります。

于 2012-06-29T06:58:07.237 に答える