アプリケーションを備えたEARがあり、WARとしてパッケージ化された独自のコードでこのアプリケーションを拡張する必要があります。 EAR内にWARを配置するのに役立つMavenプラグインはありますか?
手動の手順では、WARをEAR内に配置し、モジュールをapplication.xmlに追加します。それを自動化したいと思います。
編集:小さな説明-WARプロジェクトはmavenを使用していますが、EARの場合はバイナリファイルしかありません。
<packaging>ear</packaging>
を含む新しいモジュールを作成します。
このearモジュールの依存関係に、war
モジュールを含めます。
<dependency>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<version>your-war-version</version>
<type>war</type>
</dependency>
次に、このearモジュールのビルドプラグインに、次のようなmaven-ear-pluginを含めます。
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>MyEarFile</finalName>
<version>5</version>
<generatedDescriptorLocation>${basedir}/src/main/application/META-INF</generatedDescriptorLocation>
<modules>
<webModule>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<uri>YouWarFile.war</uri>
<bundleFileName>YouWarFile.war</bundleFileName>
<contextRoot>/appname</contextRoot>
</webModule>
</modules>
</configuration>
</plugin>
必要に応じて、webModule
の特定の構成値を変更できます。
次に、親モジュール(<packaging>pom</packaging>
付き)を作成し、それにwarモジュールとearモジュールを追加します。 warモジュールとearモジュールの<parent>
を正しく設定していることを確認してください。
この新しい親に対してmvn package
を実行すると、warファイルはwarモジュールによって構築され、earファイル(warを含む)はearモジュールによって構築されます。
依存関係としてWARを追加し、 maven ear plugin を使用します。次に ear:generate-application-xml ゴールを使用し、最後に ear:ear ゴールを使用します。