java - jidea - intellij student
Herramientas de arranque de primavera: la carga de contenido estático no funciona en IntelliJ (4)
Al crear mi primera aplicación Spring Boot, descubrí que debo reiniciar mi aplicación cada vez que hago un cambio en un archivo Javascript en /resources/static/some-file.js
Esto consume mucho tiempo.
Cuando muevo los archivos a la carpeta / webapps /, funciona como se esperaba, pero los archivos no están empaquetados en un JAR. Los documentos mencionan esto, así que no puedo continuar de esta manera.
Leí todo sobre spring-boot-devtools
, y lo instalé en mi POM, pero el hotswapping no funciona para funcionar. Todavía necesito reiniciar la aplicación completa para ver un cambio de archivo Javascript o CSS.
Cuando se inicia la aplicación, puedo ver la línea en la que LiveReload server is running on port 35729
, por lo que spring-boot-devtools
debe estar haciendo algo ...
¿Cuáles serían los pasos para seguir investigando qué está mal?
Supongo que cuando IntelliJ ejecuta la aplicación, los archivos se copian, así que cuando hago un cambio, en realidad estoy cambiando los archivos originales y no los que usa la aplicación en ejecución.
PD: Estoy usando Maven, IntelliJ IDEA 15 y Spring Boot 1.3.3 con el servidor Tomcat incorporado. No estoy seguro de qué comando ejecuta IntelliJ para iniciar la aplicación. El IDE está manejando esto "automáticamente". Tal vez necesito cambiar mi configuración de ejecución?
En Linux, presione:
Ctrl - Alt - Shift - /
Necesitas activar un par de características en IntelliJ para que esto funcione.
Primero, hay una configuración específica del proyecto que deberías aplicar en cualquier proyecto en el que quieras usar devtools. Ve a Preferencias> Compilador y habilita "Crear proyecto automáticamente".
La siguiente configuración es una configuración de registro IDEA que se aplica a todos los proyectos.
- En OSX, presione
Shift+Command+A
(Shift+Ctrl+A
en Windows) - Escriba "Registro" en el cuadro de búsqueda que aparece y seleccione el registro para abrirlo.
- Busque compiler.automake.allow.when.app.running y habilítelo.
Después de eso, reinicie su aplicación. Notará que el proyecto se sigue reconstruyendo con cada cambio que realice. Cuando verifique el resultado en el navegador, verá que tanto los archivos estáticos como el código se han actualizado.
También escribí un blog sobre esto hace un rato. http://patrickgrimard.com/2016/01/18/spring-boot-devtools-first-look/
Para los usuarios de Windows los pasos son:
1) Vaya a Archivo-> Configuración, luego a "Compilación, Ejecución, Implementación" -> Compilador y habilite la marca "Crear proyecto automáticamente".
2) Presione Ctrl-Alt-Shift- / y seleccione "Registro" en el menú que aparece. Habilitar compiler.automake.allow.when.app.running flag.
3) Inicie / reinicie la aplicación y observe la recarga de contenido estático.
Para usuarios de mac tuve que presionar Comando + Shift + A
Y reinicie INTELLIJ después del Paso 1 y el Paso 2 sin los cuales no aparecía la opción de registro.