2010-03-03 15 views
14

Tengo un proyecto de Spring Roo y uso mvn jetty:run para ejecutar mi aplicación. El único problema es que los cambios en las clases *.java no se implementan en caliente, mientras que los cambios en *.jspx se implementan en caliente correctamente.implementación en caliente en el embarcadero incrustado

Entonces, ¿cómo puedo configurar mvn embarcadero a hotdeploy para las clases de Java?

Respuesta

22

Es necesario configurar el scanIntervalSeconds a un valor mayor que 0 para permitirle:

scanIntervalSeconds - El intervalo en segundos para escanear la aplicación de web para los cambios y reiniciar el contexto si fuera necesario. Ignorado si la recarga está habilitada. Desactivado por defecto. valor por defecto es: 0.

Así que el poder de configuración tiene el siguiente aspecto:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 
    <version>6.1.22</version> 
    <configuration> 
    <scanIntervalSeconds>1</scanIntervalSeconds> 
    </configuration> 
</plugin> 

Una vez activado, el plugin embarcadero experto escaneará el directorio definido en classDirecory (que apunta a ${project.build.outputDirectory} por por defecto, es decir, target/classes) para cambios.

Solo necesita tener sus clases de compilación IDE en target/classes (o ejecutar mvn compile) y Jetty reiniciará el contexto cuando se produzcan cambios en las clases de Java.

+0

¡Muchas gracias! :) – portoalet

+0

Hay 404 errores mientras Jetty vuelve a implementar las clases. Alguna sugerencia de cómo evitarlos? También vea esta pregunta: http://stackoverflow.com/questions/23343243/jetty-404-error-page-on-hot-deployment – tholu

+1

Desafortunadamente, la redistribución sin tiempo de inactividad requiere mucho esfuerzo en el mundo de Java :(Edit: Will prueba esto: http://www.rafaelsteil.com/zero-downtime-deploy-script-for-jetty/ – tholu

Cuestiones relacionadas