Actualmente utilizamos MyEclipse con su integración incorporada Maven4MyEclipse y su soporte de servidor J2EE incorporado, pero queremos convertirlo a eclipse normal (específicamente Helios) para poder usar su instalación de 64 bits en Windows. (MyEclipse aún no es compatible con 64 bits en Windows.)¿Puede un proyecto m2eclipse/WTP de múltiples módulos obtener módulos de utilidad implementados en WEB-INF/classes?
Hasta ahora tengo un prototipo de eclipses Helios que funciona utilizando m2eclipse con el plugin WTP que implementa nuestra gran aplicación web a tomcat. La implementación consume un poco de procesador, pero funciona y la aplicación se inicia.
Lo que es críticamente diferente aquí es cómo se implementan los proyectos dependientes. En nuestro entorno MyEclipse, todos los proyectos dependientes se desplegaron en la carpeta WEB-INF/classes, por lo que mientras el servidor se estaba ejecutando, un cambio a una clase java en el IDE copiaría solo los archivos afectados al las clases WEB-INF/del servidor e intercambian la clase en caliente en la JVM y ... boom: cambian en vivo al servidor. EXCELENTE para la depuración.
En mi conversión helios, sin embargo, todos los proyectos dependientes se JARed y poner en WEB-INF/lib. Esto tiene la ventaja de parecerse a lo que parece nuestra imagen de producción real, pero el entorno de desarrollo se ve gravemente perjudicado por esto, ya que la capacidad de intercambio en caliente parece estar totalmente perdida. Aquí, si cambio una clase java en un proyecto dependiente, m2eclipse volverá a empaquetar el JAR, verá que la aplicación web desplegada no está sincronizada y volverá a publicar toda la aplicación. Esto no solo es un problema porque toda la aplicación web tiene que pasar por un ciclo (algo que francamente no funciona bien dado su tamaño y el gran tiempo de inicialización), sino que también es una desagradable demora en eclipse al hacer su reedición. (Para nuestra aplicación esto toma alrededor de un minuto o dos.)
Así que mi pregunta es esta: ¿hay alguna manera de obtener cambios dentro de los proyectos dependientes para intercambiar en caliente a la JVM en ejecución y reemplazar los archivos implementados sin esta desagradable pena de republicación ? Estoy asumiendo que esto significa desplegar esos archivos de clase en las clases WEB-INF/pero no estoy seguro de que sea (a) posible o (b) realmente necesario como parte de esta solución.
¿Qué están haciendo otros para resolver esto? ¿Es solucionable?
¡Gracias de antemano!
increíble! Eso es exactamente lo que estaba buscando. (Todas mis búsquedas de alguna manera se perdieron esto, aunque en mi defensa los foros de eclipse parecían estar desconectados desde este último domingo hasta hace muy poco, ¡así que todos mis éxitos de búsqueda en esa área fueron inaccesibles!) Gracias por los detalles, precisión y Respuesta rápida. ¡Esto funcionó maravillosamente! – Scott
@Scott: De nada. Me alegro de que fue útil. –
@Scott: Por cierto, puede aceptar esta respuesta si cree que fue útil (la marca verde debajo del contador de votos a la izquierda). –