通常、依存関係はJavaの.war-packagesにバンドルされています。war-packageと共有ライブラリの依存関係
ただし、デプロイメントを共有ライブラリにドロップして、デプロイされた各アーティファクトに対して同じ依存関係を使用することもできます。
質問:各アプローチのメリットと欠点は何ですか?どのような状況でそれらを使用しますか?
最も必要なのは直観性/保守性です。私は購入するのが安いので、メモリ消費、ディスクスペース使用、帯域幅などについてはあまり気にしません。とにかく
、それぞれにいくつかのポイント:WAR内の依存関係を含め
:(?)
- "事実上の" アプローチ
- は簡単に維持するために、(など以下の構成&スクリプトを、必要とします)
- アプリケーションサーバーへの展開が容易
- 各モジュールはライブラリの特定のバージョンを定義できます
- クラスローディングエラーのリスクを軽減できますか?
- 削減メモリ消費彼らはクラスパスを共有するよう(ささいな?)
- WARの展開は、同じインスタンス/変数などにアクセスすることができます:?共有ライブラリを使用して
実際には本当に悪いと思う? (実際には同じ方法で動作するのですか、別々のコンテキストで別々のコンテキストで実行されているのでしょうか?)
- 依存関係を別々に維持/展開する必要があるため、配布と展開が難しくなります
- パッケージは小さい
- 依存関係(ささい)サイズアップWARアプリケーションの実際の再展開せずにアップグレードすることができます(実際には、利益の何...)もちろん
、我々は両方のアプローチの最良の側面を使用することができ、ちょうど提供します共通ライブラリを共有ライブラリとして提供し、WAR内にバージョン特化を含めることができます。しかし、これはメンテナンスの労力を倍増させ、ノー・ノーのように感じます。
現在、私はGlassfish 3.1.1を使用していますが、この質問は本当にアプリのサーバーには無関係です。
興味深いことに、私はFAQをより詳細に読む必要があるようです。私は、2つの厳しい質問があったと思っています。良いものとどちらのアプローチを選択するのかを尋ねて、直感性/保守性を考慮しました。私は一般的にどちらが良いか尋ねませんでした。それは与えられた事実に基づいて、誰もが自分自身を決めることです。私はさらに展開の出発点を与え、建設的な答えを得ました。 –