2

私のプロジェクトの戦争は、いくつかのMaven依存関係を追加した後、サイズが32MBに増加しました!

そのサイズを小さくする必要があります。グーグルで調べてみると、モジュールを使用することが方法であることがわかりました。

ベストプラクティスは何ですか? 各ライブラリを新しいモジュールとして追加しますか? 「すべてのライブラリ」でモジュールを作成しますか? それが可能かどうかさえわかりません。

たとえば、次のようなものがあります。

<dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>5.0.0</version>
        </dependency>

その依存関係に「提供」を追加し、JAR を戦争に含めずに JBoss に保持したいと考えています。

どのように?

PS: デプロイされたすべてのアプリケーションで利用できることはわかっています。それは良いです。

4

1 に答える 1

6

アプリケーションをライブラリから分離することは、私には良い考えのようには思えません。アプリケーションのコンテキスト依存性が劇的に増加し、最初に内部をいじらないとアプリケーションを別のサーバーにデプロイできなくなります。これは、実稼働環境では不可能/許可されない場合があります。

32MBのA war...だから何?最近では、数 MB 余分にあることは実際の問題ではありません。数百 MB の重さのビジネス アプリケーションは、それほど珍しくありません。

したがって、厳しい警告の後、これを行う方法は次のとおりです。

ディレクトリに移動しJBOSS_HOME/modules、アーティファクト座標のディレクトリ階層を作成します (com.example 依存関係は /com/example/ フォルダーにあります)。

このフォルダーに、フォルダーを作成しますmain

ライブラリjarをメイン フォルダに配置します。

module.xmlファイルを作成して入力します。

<module xmlns="urn:jboss:module:1.1" name="com.example">
    <resources>
        <resource-root path="mylib.jar"/>
    </resources>
</module>

サーバーの再起動が必要かどうかはわかりません。

モジュールに独自の依存関係がある場合は、次のように sth をmodule要素に追加することでそれらを通知できます。

<dependencies>
    <module name="com.example.implementation"/>
</dependencies>

(名前が示すように)モジュール性のために、各ライブラリを独自のモジュールにデプロイすることをお勧めします。その後、個別に交換できます。

于 2013-02-13T11:49:33.250 に答える