Spring Boot con Live Reload en IntelliJ y Chrome

Una de las tareas más repetidas por los desarrolladores es la necesidad de recompilar y redesplegar las aplicaciones mientras que estamos desarrollando cada vez que hacemos un cambio. Por lo que siguiendo la tendencia de facilitarle la vida al programador Spring Boot tiene algunas herramientas que permiten hacer esto de manera automática.

Spring Boot DevTools

Lo primero que debemos saber es que necesitaremos incluir la dependencias de DevTools. En el caso de usar Maven sería incorporar al pom.xml:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <scope>runtime</scope>
   <optional>true</optional>
</dependency>

Si arrancamos la aplicación de la manera habitual con:

mvn spring-boot:run

Deberíamos ver una línea nueva en el log del arranque de la aplicación similar al siguiente:

INFO 947101 — [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729

LiveReload en el Log de arranque

Como vemos nos ha arrancado un nuevo puerto el 35729 que permite acceder a él por websocket para comunicar nuestro navegador y la aplicación para forzar la recarga del navegador cuando se haya recompilado la aplicación.

Pero en el caso de usar IntelliJ deberemos realizar algunos cambios en la configuración para que sea automático cada vez que hacemos un cambio en la aplicación en el IDE.

Para ello con el proyecto abierto deberemos ir a File->Settings->Build, Execution, Deployment -> Compiler y deberíamos marcar la checkbox Build project automatically

Opción Build project automatically

Además deberemos cambiar la configuración avanzada en File->Settings->Advanced Settings y marcar la checkbox llamada Allow auto-make to start even if developed application is currently running

Opción Allow auto-make to start even if developed application is currently running

Si reiniciamos el arranque de la aplicación parando la aplicación y ejecutando de nuevo:

mvn spring-boot:run

Ahora realiza cualquier cambio dentro de la aplicación vete al navegador y recarga la página, verás que en breve la página no estará disponible porque estará recargando la aplicación pero que al poco la página se reflejará con los nuevos cambios.

LiveReload for Chrome

Para facilitar todo este proceso podemos hacer uso de la extensión de Chrome Live Reload

https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=es

Una vez instalada la extensión debería aparecer el icono en la parte superior derecha de la ventana del navegador

Icono del LiveReload

Si ves que no aparece vete a la pieza del puzle y marca el pin en la extensión del Live Reload.

Una vez cargada podremos ir a la web de tu aplicación:

http://localhost:8080

O la que estés usando en ese momento y si pasar el ratón por encima del icono de la extensión debería aparecer el texto:

Livereload is connected. Click to disable. Tiene acceso a este sitio web.

Si todo ha ido bien, realiza cualquier cambio en la aplicación y al tiempo deberías ver que el navegador automáticamente recarga la pantalla con los nuevos cambios.

Comments

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies