wake-up-neo.net

Wie füge ich WAR in EAR mit Maven hinzu?

Ich habe EAR mit einer Anwendung und muss diese App um meinen eigenen Code erweitern, der als WAR verpackt ist. Gibt es ein Maven-Plugin, das mir helfen kann, den WAR in die EAR zu legen?

Die manuelle Prozedur besteht darin, WAR in EAR einzufügen und das Modul zu application.xml hinzuzufügen. Das würde ich gerne automatisieren.

EDIT: kleine Klarstellung - das WAR-Projekt verwendet Maven, aber für EAR habe ich nur die Binärdatei nichts mehr.

21
stalker

Ich würde ein neues Modul erstellen, das <packaging>ear</packaging> hat.

Fügen Sie in den Abhängigkeiten für dieses Ohrmodul Ihr war-Modul ein:

<dependency>
    <groupId>com.your.group.id</groupId>
    <artifactId>your-war-artifact</artifactId>
    <version>your-war-version</version>
    <type>war</type>
</dependency>

Fügen Sie nun in den Build-Plugins für dieses Ohrmodul das Maven-Ear-Plugin ein, z.

<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>

Sie können die spezifischen Konfigurationswerte für die webModule nach Bedarf ändern.

Erstellen Sie nun ein übergeordnetes Modul (mit <packaging>pom</packaging>) und fügen Sie das Kriegsmodul und das Ohrmodul hinzu. Stellen Sie sicher, dass Sie den <parent> der Kriegs- und Ohrmodule korrekt eingestellt haben. 

Wenn Sie mvn package für dieses neue übergeordnete Element ausführen, wird vom Kriegsmodul eine Kriegsdatei erstellt, und vom Ohrmodul wird eine Ohrdatei (die den Krieg enthält) erstellt.

46
joelittlejohn

Fügen Sie WAR als Abhängigkeit hinzu und verwenden Sie maven ear plugin . Dann verwenden Sie ear: generate-application-xml goal und schließlich ear: ear goal.

0
Koziołek