0

Tomcat で実行されている Eclipse プロジェクトがあり、依存関係の jar は WEB-INF/lib ディレクトリにあります。すべてが素晴らしいです。しかし、エクスポート時に作成される war ファイルは巨大で、テスト サーバーとの間でやり取りする必要があり、時間がかかります。それは無駄のようです。

そのため、すべての依存関係 jar をファイル システムの dependency_jars フォルダーに配置し、そこを指すようにビルドを構成しました。ビルドは機能しますが、(まだローカル マシンで) 実行すると、アプリでランタイム エラーがスローされます。

いろいろ読んで、プロジェクトのプロパティに移動し、jar を Web 配置アセンブリに追加しました。これでランタイムは機能しますが、エクスポートされた war にはすべての jar がパッケージ化されています。

では、依存関係をランタイム環境で利用できるようにするにはどうすればよいでしょうか。

4

1 に答える 1

0

OK、これが最も洗練されたソリューションかどうかはわかりませんが、Tomcat を外部ライブラリを使用するように構成し、そこに依存関係の jar ファイルを配置してから、Eclipse にすべてを含む戦争を作成させ、コマンド ラインから爆発させました。依存関係の jar ファイルを削除し、war を再パッケージして、最後に送信します。

まあ、間違いなくエレガントなソリューションではありません。しかし、それは機能します。手順は次のとおりです。

  1. 外部リソース ライブラリを使用するように Tomcat を構成します。tomcat_home/conf/catalina.properties に移動し、「「共通」クラスローダーの内容を定義するコンマ区切りパスのリスト...」で始まるコメントの下にディレクトリを追加します。

  2. Eclipse を介して戦争をエクスポートします。

  3. 戦争を爆発させます(しゃれはおそらくここで価値があります:) jar -xvf MyWar.war

  4. 依存関係の jar を削除します (上記の手順 1 で外部ディレクトリに配置されています)。

  5. 戦争を再パッケージ化します: jar cvf MyWar.war WEB-INF

于 2013-03-27T16:10:44.017 に答える