0

私は、ビルドするmavenマルチモジュールプロジェクト、共通jar、および多数のアプリケーションjar(共通jarに依存)を持っています。各アプリケーションを zip ファイルとしてアセンブルします。すべての依存 jar を zip ファイルの lib ディレクトリに配置しました。

アプリケーションが非常に大きく (約 60Mb)、そのほとんどが lib ディレクトリ jar に関連していることに気付きました。また、各アプリケーションの lib ディレクトリに (他のアプリケーションと同様に) 同様の jar のセットがあることにも気付きました。親pomでdependencyManagementを使用したため、jarのすべてのバージョンは、各アプリケーションの各libディレクトリで同じです。

私がやりたいことは、すべてのアプリケーション間で単一の lib ディレクトリを共有することです。依存するすべての jar を含む zip ファイルを作成する必要がありますか? これをどこかに解凍しますか?ジャーの範囲を提供されたものに変更しますか?

特定の jar の別のバージョンを使用するために、1 つのアプリケーションを変更する必要があったのではないかと思います。理想的には、jar の zip を再構築して再デプロイし、既存のアプリケーションと新しくパッチが適用されたアプリケーションがサポートされる可能性があります。

何かご意見は ?

これについてアドバイスをいただければ幸いです。

少し検索しましたが、これに対する答えが見つかりませんでした...ご指摘ありがとうございます。

4

1 に答える 1

0

タイプpomのパッキングでpomを作成し、依存関係セクションにすべてのjarを明示的にリストすることでこれを解決しました(単一の親pomのdependencyManagementセクションからコピー/貼り付け)。コンパイルするスコープを設定しました。これをzipファイルにまとめます。

親 pom で、dep mgt セクションのすべての依存関係のスコープを provided に設定しました。各アプリケーションは、このスコープを継承するようになりました。

libs.zip を特定のディレクトリに解凍し、各アプリケーションがそれを指すようにします (JDK 6 では、ディレクトリ内のすべての jar を含むようにクラスパスを設定できます)。

現在、各アプリケーションのサイズは非常に小さくなっています。

偉大な。仕事はよくやった...

于 2013-10-02T16:08:36.027 に答える