Как добавить WAR внутри EAR с Maven - PullRequest
21 голосов
/ 02 марта 2011

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

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

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

Ответы [ 2 ]

46 голосов
/ 02 марта 2011

Я бы создал новый модуль с <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, например:

<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> модулей war и ear.

Когда вы запускаете mvn package для этого нового родителя, военный файл будет построен модулем войны, а файл ear (содержащий войну) будет создан модулем уха.

0 голосов
/ 02 марта 2011

Добавьте WAR как зависимость и используйте плагин maven ear .Затем используйте ear: generate-application-xml цель и, наконец, ear: ear goal.

...