1

Tomcat と完全な Java EE サーバーの両方で実行されるプロジェクト (マルチモジュール) を作成したいと考えています。Tomcat にはいくつかのライブラリが欠けているため、Tomcat 用にそれらを含める必要がありますが、完全な Java EE コンテナにはこれらのライブラリがあり、とにかくそれらを含めると競合が発生する可能性さえあります。

すべての html ファイルを 1 か所 (おそらく Java EE コンテナー WAR プロジェクト) にまとめてから、同じ war をビルドする別のモジュールを用意したいのですが、WAR ファイルに依存関係が追加されています。

どうすればこれを達成できますか?

4

1 に答える 1

4

これにはWAR オーバーレイを使用できます。このアプローチでは、1 つの WAR モジュールにすべての共有要素 (ライブラリ、リソースなど) を含めることができます。次に、別のモジュール (またはコンテナーごとに複数のモジュール) を作成し、タイプ WAR の依存関係を追加します。次のようにします。

<dependency>
    <groupId>com.example.app</groupId>
    <artifactId>my-war-base</artifact>
    <version>1-SNAPSHOT</version>
    <type>war</type>
</dependency>

これを (WAR プロジェクトに!) 追加するだけで、WAR がマージ (= オーバーレイ) されます。たとえば、多くのコンテナで必要とされるが単一のコンテナでは問題のあるリソース/ライブラリがある場合など、ベース戦争から一部を除外することもできます。

いくつかの微調整が可能です - docs を参照してください

ところで、このアプローチでは次のことが可能になります。

  • 一度にすべてのコンテナをビルドする
  • 一貫したビルド出力を得る (同じ戦争 => 同じ目的)
于 2012-11-02T10:48:00.567 に答える