Ответ 1
Я бы создал новый модуль с <packaging>ear</packaging>
.
В зависимостях для этого модуля уха включите ваш модуль war
:
<dependency>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<version>your-war-version</version>
<type>war</type>
</dependency>
Теперь в плагинах сборки для этого модуля уха включить плагин maven-ear-plug, например:
<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>
) и добавьте к нему военный модуль и модуль уха. Убедитесь, что вы устанавливаете <parent>
для модулей войны и ушей.
Когда вы запустите mvn package
для этого нового родителя, военный файл будет создан военным модулем, а ушной файл (содержащий войну) будет создан ушным модулем.