2011-08-25 22 views
11

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?

  1. 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?

  2. 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?

  3. 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 el pom.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).

Respuesta

5

1. Asegúrese de que el Roo está apuntando al directorio correcto: Preferencias, Primavera, Soporte Roo

2. Compilar los tiempos son a menudo agravados por la validación: Preferencias, validación, comprobar suspender todas las Preferencias validadores, primavera, desactive las reglas de validación deseados Preferencias, general, construir, desactive construir de forma automática, a continuación, crear manualmente cuando sea necesario

3. Actualizar las dependencias haciendo clic derecho sobre el proyecto: Maven, actualización del proyecto de actualización de dependencias y configuración

Algunos consejos están en la DZone RefCard que escribí. http://refcardz.dzone.com/refcardz/eclipse-tools-spring

Saludos, Gordon Dickens

1

1.Sin respuesta ROO

Solía ​​tener problemas con la consola ROO en STS en versiones anteriores de ROO. En mi experiencia, el shell de ROO lanzado a través de la línea de comandos fue más receptivo. Creo que las cosas han mejorado en las versiones más nuevas de STS y ROO. ¿Qué versión está utilizando?

2. Los largos tiempos para compilar

Aunque el tiempo de compilación era lo suficientemente bueno para mí, el culpable por lo general se validando constructores. Varios constructores de validación que validan XML, JSP, configuración de Spring, etc. también tienen mucho tiempo para completar. Terminé desactivando varios validadores para llevar el tiempo de compilación dentro de un límite razonable.

3. Maven POM y

he experimentado problemas similares también. Aunque esto no es exactamente un problema de ROO, pero como ROO no ofrece una alternativa a Maven, este puede ser un problema grave para los proyectos de ROO. Creo que podría haber una opción en M2-Eclipse en algún lugar que te permita forzar de manera selectiva una actualización en una dependencia.

+0

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