IDEA IntelliJ Wie geht das mit den Artefakten

DaBe1812

Bekanntes Mitglied
Hi,
ich bin recht neu in IntelliJ und habe noch garkeine Erfahrungen mit der Art und Weise, wie IntelliJ mit Servern und so um geht.
Wir verwenden den WLP samt Plugin, damit der auch in IntelliJ funktioniert.
Aktuell ist das Ganze so eingestellt, dass wenn ich oben rechts in IJ auf Debug oder Play drücke, dann wird die Anwendung als WAR gebuildet und dieses War-File wird WLP ausgeführt. Das funktioniert auch so weit ganz gut.
Problem 1: im Rahmen der Qualitätsoffensive wollen wir jetzt verstärkt Unit-Tests verwenden und dann würde jedes Build ewig dauern, damit man die Anwendung kurz lokal testen kann.
Problem 2: kleine Änderungen im Frontend bedeuten auch immer ein komplettes Build der Anwendung. Ich habe z.B. im Test-Projekt vom Primefaces, welches man verwenden soll, um Bugs zu melden, gesehen, dass ich dort im HTML etwas ändere und im Browser nur F5 drücken muss, bei laufendem Server, und sehe die Änderung sofort. Kann man das für unsere Anwendung nicht auch so einstellen?
 

LimDul

Top Contributor
Zu den Junit-Tests - das verstehe ich nicht?
a) Muss man für Unit-Tests nicht das WAR bauen, sondern nur das jeweilige Modul
b) Kann man für einen lokalen Build auch alle Unit-Tests skippen. Ich baue Anwendungen lokal in der Regel so, dass ich Unit-Tests, Spotbugs, Checkstyle & Co im Build skippe um die Build-Zeiten minimal zu halten

Ob man so ein Hot Code Replacement mit WLP hinbekommt, keine Ahnung. In Eclise mit Jboss/Wildfly kenne ich es so, dass ein exploded EAR/WAR deployed wird (also nicht das WAR File, sondern der entpackte Content) und Eclipse dann automatisch bei neukompilieren die Dateien austauscht. Funktioniert meines Erachtens aber eher schlecht denn gut, so dass ich in der Regel auf Kommandozeile baue und per copy in den Deployment Folde deploye - dann halt wie oben geschrieben mit entsprechenden Maven Befehlen ( -DskipTests -Dspotbugs.skip=true -Dcheckstyle.skip=true -Djacoco.skip=true)

Wenn ich mir den Kommentar zum Plugin zu IntelliJ ansehe, scheint es kein Deployment eines exploded EAR/WAR zu geben (https://plugins.jetbrains.com/plugin/18723-websphere)
 

DaBe1812

Bekanntes Mitglied
Das wäre natürlich eine mögliche Alternative, wenn ich für den lokalen Build die Tests überspringe und die dann entweder manuell ausführe, oder die später automatisch beim Bamboo-Build vor dem Deployment ausgeführt werden.

Das mit dem Exploded gibt es in IntelliJ, aber irgendwie bin ich für die richtige Config zu blöd.
Also mein weitester Versuch hat es geschafft, dass alle @Startup Klassen ausgeführt worden sind, aber beim anwählen über den Browser hat er einen 404 geworfen, weil die login.xhtml nicht gefunden werden kann.
Das HotCode hat im Eclipse bei uns auch nie richtig funktioniert, aber wenigstens, dass man nicht ständig für die xhtml-Seiten neu builden muss, das würde uns schon einen Haufen Zeit sparen.
 

Ähnliche Java Themen


Oben