Maven, JRebel und IntelliJ

In meinem letzten Beitrag habe ich beschrieben, wie man als Java-Entwickler mit Hilfe von JRebel viel Zeit beim Bauen und beim Re-Deployment von Web-Anwendungen sparen kann. Dieser Artikel soll die Konfiguration des JRebel Maven-Plugins in der Entwicklungsumgebung IntelliJ anhand eines Beispiels erläutern.

JRebel Maven-Plugin

Um die Konfigurationsdatei rebel.xml von Maven generieren zu lassen, muss das Plugin entsprechend eingebunden werden. Im Konfigurationsabschnitt wird angegeben, wie das Maven-Plugin die JRebel-Konfigurations-Datei generieren soll, bzw. welche Pfade JRebel zur Laufzeit auf Änderungen überwachen soll.

<build>
    <plugins>
        <plugin>
            <groupId>org.zeroturnaround</groupId>
            <artifactId>jrebel-maven-plugin</artifactId>
            <version>1.1.3</version>
            <executions>
                <execution>
                    <id>generate-rebel-xml</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <alwaysGenerate>true</alwaysGenerate>
                <showGenerated>true</showGenerated>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build>

Durch die Einstellung showGenerated kann man bei der Ausführung des Plugins den Inhalt der generierten Konfigurationsdatei (rebel.xml) sehen und auf Probleme hin überprüfen.

Einhängen in den Start der Anwendung

Da IntelliJ (im Gegensatz zu Netbeans) die Anwendung nicht mit Maven selbst baut, sondern die Klassen selbst kompiliert und lediglich die Informationen zum Projekt aus dem Projekt-Deskriptor (pom.xml) zieht, wird das JRebel-Plugin normalerweise nicht ausgeführt und muss manuell in den Start der Anwendung eingebunden werden. Dies macht man, indem man das JRebel-Plugin im MavenProjects-Tool-Window auswählt und im Kontext-Menü den Punkt Execute Before Run/Debug wählt:

JRebel Plugin in Build-Prozess einhängen
JRebel vor dem Start des Application Servers ausführen

Anpassen der Run-Konfiguration

Damit zunächst die Klassen kompiliert werden, platziert man anschließend die Ausführung des Maven-Plugins in der Run-Konfiguration des Application-Servers zwischen Make und Build Artifact:

Platzieren der Plugin-Ausführung
Platzieren der Plugin-Ausführung

Fazit

Mit dieser Konfiguration kompiliert IntelliJ zunächst alle Klassen nach target/classes, generiert im selben Ordner die JRebel-Konfiguartionsdatei (rebel.xml), und kopiert den gesamten Inhalt des Ordners später in das WebArchive (WAR) der Anwendung. Die Anwendung kann jetzt mit Hilfe des JRebel IDE-Plugins für IntelliJ gestartet werden:

Inhalt des Exploded Web-Archivs
Inhalt des Exploded Web-Archivs

Kommentar hinterlassen