Подтвердить что ты не робот

Как добавить WAR внутри EAR с Maven

У меня есть EAR с приложением, и мне нужно расширить это приложение с помощью моего собственного кода, который упакован как WAR. Есть ли плагин maven, который может помочь мне включить WAR в EAR?

Ручная процедура заключается в том, чтобы включить WAR внутри EAR и добавить модуль в application.xml. Я хотел бы автоматизировать это.

РЕДАКТ: небольшое разъяснение - проект WAR использует maven, но для EAR у меня есть только двоичный файл больше.

4b9b3361

Ответ 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 для этого нового родителя, военный файл будет создан военным модулем, а ушной файл (содержащий войну) будет создан ушным модулем.