Maven und Jetty: Frontend Code und Java-Webapp gemeinsam ausliefern

21. November 2013


 

Nur kurz, weil ich es direkt so nicht im Netz gefunden habe:
Wenn via maven eben mal schnell ein „jetty“ mit den neueren Daten hochgefahren werden soll, und diese neben der Java-Webanwendung, die in dem aktuellen Maven-projekt gebaut wird, auch weitere „statische“ Dateien ausliefern will, die nicht als ein paar „resources“ mit in die webapp gepackt werden, dann funktioniert das mit folgender plugin-config in der pom.xml:


    
        org.eclipse.jetty
        jetty-maven-plugin
        
            ${project.jetty.reload}
            
                /${project.name}
            
            
                
                    /
                    
                        ../frontend
                        no-cache
                    
                
            
        
    

Die statischen Ressourcen werden dabei direkt in der Documentroot des Server ausgeliefert (das ist das /), wobei sie in dem Verzeichnis frontend direkt neben der webapp liegen.
Die darauf folgenden Zeile no-cache stellt sicher, dass der Browser diese „statischen“ Dateien nicht in den Cache nimmt, weil sie sich zur Entwicklungszeit reichlich oft ändern.

Die Property project.jetty.reload sollte dann natürlich auch in der Sektion definiert werden. Der Wert wird in Sekunden (nicht Millisekunden) angegeben; irgendwas zwischen 1 und 3 ist normalerweise angemessen, wenn mensch nicht erst einen Kaffee holen gehen will, bevor die Tippfehler oder ihre Fixes deployed sind …