wrt 設定ファイル、私はスティーブの答えがこれまでで最高のものだと思います。外部ファイルを war ファイルのインストール パスに相対的に作成するという提案を追加します。これにより、1 つのサーバーにさまざまな構成で複数の war をインストールできます。
たとえば、私dev.war
が に解凍された場合、ベースフォルダーと war フォルダー名を見つけるために/opt/tomcat/webapps/dev
使用するため、構成ファイルは戦争に関連して存在するか、絶対に存在します。ServletContext.getRealPath
../../config/dev
/opt/tomcat/config/dev
また、これらの外部構成ファイルをできるだけ少なくすることについては、 Billに同意します。環境に応じてデータベースまたは JMX を使用して、必要なだけ保存します。Apache Commons Configuration には、データベース テーブルに基づく構成を処理するための優れたオブジェクトがあります。
ライブラリに関しては、war ファイル (自己パッケージ化) 内のフォルダにすべてのライブラリを含めることは不明であることに同意します。WEB-INF/lib
利点は、アプリケーションの各インストールが自律的であり、さまざまなバージョンのライブラリを同時に使用してさまざまなビルドの戦争を行うことができることです。
欠点は、各 Web アプリケーションが独自のクラス ローダーによってロードされる独自のクラスのコピーを持つため、より多くのメモリを使用することです。
これが本当に懸念される場合は、jar をサーブレット コンテナー ( $CATALINA_HOME/lib
Tomcat 用) の共通ライブラリ フォルダーに配置できます。ただし、同じサーバー上で実行されている Web アプリケーションのすべてのインストールでは、同じバージョンのライブラリを使用する必要があります。(実際には、WEB-INF/lib
必要に応じて個々のフォルダーに上書きバージョンを配置できるため、厳密にはそうではありませんが、維持するのがかなり面倒です。)
この場合、InstallShield またはNSISまたはオペレーティング システムに相当するものを使用して、共通ライブラリの自動インストーラを構築します。最新のライブラリ セットがあるかどうか、アップグレード、ダウングレードなどを簡単に確認できるもの。