Estoy usando STS y Java desde hace un tiempo para desarrollar una aplicación web. El proyecto está configurado para usar Maven, Roo y MySQL como base de datos. A menudo encontrará que perder mucho tiempo en los siguientes casos:STS Spring con Roo and Maven: ¿demasiado lento?
Sin Roo respuesta - cuando modifico una clase de dominio objeto de Java, incluso si la cáscara Roo para el proyecto está abierto y cargado que lo haría no responder Mi truco actual para este problema es generar un nuevo buscador para la clase usando roo (que despierta a Roo de alguna manera). ¿Hay algún truco mejor?
Largos tiempos para compilar - He configurado la compilación automáticamente como una opción de proyecto. Quizás no debería usarlo. Pero la conclusión es que a veces necesito hacer un pequeño cambio en un objeto de dominio y luego ejecutar el proyecto, por lo tanto, necesito construir el proyecto nuevamente y probarlo (incluso para pequeños cambios). ¿Hay alguna propiedad que pueda configurar para volver a compilar solo algunas partes del proyecto?
Maven y Pom - A menudo me encontré problemas con Maven como siempre que estaba modificando una dependencia en
pom.xml
archivo y guardarlo olvidándose de estar en una red interna de la empresa la biblioteca.m2
no se actualiza correctamente. En esos casos, debería haber cambiado a una red no interna antes de guardar elpom.xml
. El bit molesto es que una vez que cambio las preferencias de red y ejecuto el comando "actualizar todas las dependencias de maven", no lo haría correctamente. La razón es que los archivos pom para la nueva biblioteca se generan pero con un mensaje de error como contenido. El problema parece ser que Maven genera estos archivos, pero no es lo suficientemente inteligente como para reconocerlos e intentar recuperar las bibliotecas de los repositorios web. Para solucionarlo, necesito eliminar el contenido de la carpeta y ejecutar nuevamente el comando. ¿Hay alguien que haya encontrado una mejor solución?
Es Roo realmente vale la pena? Y si es así, ¿cuándo?
Descubrí que Roo es bueno para comenzar y para crear la base de datos inicial y las configuraciones del proyecto (por ejemplo, seguridad). ¿Pero entonces? Por mucho, he estado usando Roo para generar buscadores, pero a menudo descubro que a Roo le lleva unos 10/15 minutos actualizar cuando se agrega un nuevo buscador a una clase (nuestro proyecto es bastante grande). Estoy considerando comenzar a mantener el shell de Roo cerrado la mayor parte del tiempo y agregar manualmente los buscadores en los archivos .aj
y anotar el archivo .java
. ¿Este conflicto con Roo después (por ejemplo, una vez que abra el shell Roo por alguna otra razón)?
Java y STS
¿Por qué tarda tanto tiempo el proyecto para compilar? Quiero decir, me imagino que STS está comprobando que en cada clase no hay dependencia con los archivos recientemente modificados y si hay uno actualiza el código y regenera un archivo jar. ¿Es esto correcto? ¿Qué pasa si estaba usando PHP o Python? ¿Pasaría lo mismo o sería más rápido? Sé que hay varias discusiones sobre esto, pero como estoy enumerando los problemas que estoy teniendo, pensé que podría mencionar esto también. Es la pregunta eterna de qué lenguaje usar y para qué. En nuestro caso, tenemos una base de datos relacional, una gran cantidad de datos, restricciones de seguridad y la necesidad de realizar cálculos precisos (se necesita una datación estricta).
Gracias por sus sugerencias, parece que mi Roo es jugando malos trucos para mí. Cada vez que modifico un objeto de dominio agregando una anotación de buscador manualmente, Roo no lo recogerá (incluso si el shell está abierto). Verifiqué esto escribiendo "pista" antes de agregar la anotación y después de haberla agregado. La segunda vez, el mensaje "sugerencia" aparecería solo 30 minutos después y no habría ningún mensaje relacionado con el nuevo buscador (lo guardé todo y lo compilé). – mm24