2009-07-09 24 views
10

¿Qué entorno de desarrollo web Java es el mejor para minimizar al máximo el tiempo de ciclo de despliegue-despliegue-prueba?Entorno de desarrollo web Java para minimizar el tiempo de ciclo de despliegue-despliegue-prueba?

Entorno de desarrollo web: JBOSS, Tomcat, Jetty? ¿Despliegue WAR estallado? ¿Copiar GUERRA o usar enlaces simbólicos? Hay factores aquí que no sé.

ciclo Build-deploy-test? La cantidad de tiempo que lleva probar un cambio en el navegador después de realizar un cambio en el código fuente u otros recursos (incluidos fuente Java, HTML, JSP, JS, imágenes, etc.).

Estoy buscando acelerar mi desarrollo mediante la reducción de la cantidad de tiempo que paso viendo las compilaciones Ant y los contenedores J2EE. Quiero la experiencia de Ruby on Rails, o lo más cerca que pueda.

Preferiría una solución que sea independiente del marco web, sin embargo, si un marco particular es particularmente ventajoso, entonces me gustaría saberlo.

Supongamos que todas las herramientas estándar están en uso: hibernación, muelles, JMS, etc. Si se requiere una infraestructura de soporte de burla/burla para que esto funcione, estoy de acuerdo con eso. De hecho, estoy de acuerdo con tener un entorno de desarrollo que sea muy diferente de nuestro entorno de producción si me ahorra tiempo suficiente.

Respuesta

2

La implementación es lo más rápida posible con Google App-Engine + GWT (opcional) + Eclipse Plugin.

Nunca he visto nada más rápido.

+0

¿No tiene que reiniciar el servidor integrado cada vez que cambia una clase? He echado un vistazo a GAE y descubrí que tenía que hacer esto. Sé bueno saber que podría estar equivocado. – Damo

+1

En mi respuesta, solo realizo una implementación abuot; de todos modos, tienes que hacer eso (reiniciar el servidor de desarrollo) solo si cambias el código del servidor: en GAE + GWT la mayor parte de la lógica es del lado del cliente, por lo que no es demasiado grande un trato. – JohnIdol

1

JRuby on Rails. Desarrolla en cualquier plataforma que desees, impleméntala en servidores Java estándar.

4

La construcción (solía estar compilando) es una señal de nuestros tiempos. Necesitamos una validación rápida de nuestros pensamientos y nuestras acciones. Cuando me encuentro construyendo muchas veces, generalmente es una señal de que no estoy enfocado. Que no tengo un plan. Para mí, este es el momento de parar y pensar. Haz una lista de las cosas que se deben hacer (esto es un agnóstico de web framework), hazlas todas y pruébalas todas después de una compilación.

+4

No puedo entender por qué la gente vota esto. Esto aplica para usted y su flujo de trabajo y en realidad no responde la pregunta. – vladv

2

Maven 2 y eclipse. mvn eclipse: eclipse < - genialidad pura. Además, WTP dentro de eclipse funciona de maravilla (y maven genera proyectos WTP que funcionan).

+2

WTP? Además, ¿podrías agregar enlaces a todas las cosas increíbles?:) –

2
  • Los pequeños contenedores web se cargarán más rápido que los contenedores web sobrecargados con el fregadero de la cocina integrado (.. tos ... jboss).
  • Algunas decisiones de diseño retrasan los tiempos de compilación (por ejemplo, los kits de herramientas basados ​​en el tejido de aspecto agregan una fase de tejido de aspecto para compilar los tiempos).
  • Evite crear componentes que solo puedan probarse después de largos ciclos de carga elaborados. Los caches son un culpable principal aquí. Si su sistema tiene dependencias profundas en un caché global disperso en todas partes, necesitará cargar el caché cada vez que necesite probar algo.
  • Componentes comprobables por la unidad, para que pueda ejecutar las piezas en lugar de todo.

Creo que los proyectos se compilan, implementan y arrancan razonablemente en unos 10 segundos, lo que generalmente está bien.

6

JBOSS utiliza Tomcat para su motor servlet/JSP, por lo que es un lavado.

Tomcat es compatible con hot deploy.

Embarcadero es bastante pequeño y comienza rápidamente, pero es doesn't support hot deploy.

Eclipse es simplemente un IDE. Necesita un motor servlet/JSP de algún tipo. Si es como IntelliJ, puede usar cualquier servidor de aplicaciones Java EE o servlet/JSP que desee.

IntelliJ es bastante rápido, y no tiene que detener e iniciar el servidor cada vez que reconstruye. Funciona con la explosión de WAR, por lo que las cosas suceden rápidamente.

+3

Una forma fácil de obtener redespliegues en Jetty es usar contextos. A continuación, toca el archivo xml de contexto y la aplicación web se vuelve a cargar. –

+1

No lo sabía, gracias. – duffymo

+1

"ContextDeployer se puede usar para implementar (en caliente) un contexto arbitrario o aplicación web con configuración específica de Jetty. Para implementar estáticamente solo aplicaciones web estándar al inicio, use WebAppDeployer". http://docs.codehaus.org/display/JETTY/ContextDeployer –

2

¿Ha intentado utilizar Eclipse Java EE y luego le dice que se despliegue en un servidor administrado por Eclipse? Tomcat y JBOss funcionan bastante bien de esta manera. También le permite cambiar el código en un método, usar Ctrl-S y tener la clase actualizada dentro del servidor.

MyEclipse también funciona bastante bien así.

2

GWT en eclipse es probablemente lo más rápido que puedo pensar. Usando el navegador de modo alojado para sus pruebas, puede depurar y cambiar su código sin reiniciar nada. Solo tiene que hacer clic en el botón Actualizar en el navegador y los cambios están ahí (java, css, etc.). Otra cosa es que GWT está agregando este mismo soporte a navegadores normales (Firefox, IE, Safari) para que pueda depurar desde dentro de la misma manera. Estos cambios vienen en 2.0. Ver http://code.google.com/events/io/sessions/GwtPreviewGoogleWebToolkit2.html

3

Jboss Seam junto con el Jboss Developer Studio es bueno para el despliegue en caliente todo a un lado de EJB (SLSB, SFSB y entidades necesitan redistribuir).

+0

casi dos años después - Ahora iría con el Playframework para la velocidad – Damo

1

Creo que la mejor manera de evitar los ciclos de pruebas de implementación de compilación larga es escribir pruebas de unidad para su código. De esta forma puedes encontrar errores sin esperar las fases de compilación/implementación.

Para JSP se pueden editar los archivos JSP directamente en la carpeta de trabajo JBOSS:

> cd $ JBOSS_HOME/server/default/tmp
> encontrar -nombre myJspFile.jsp
./tmp/vfs/ automountd798af2a1b44fc64/Jee6Demo.war-bafecc49fc594b00/myJspFile.jsp

Si edita el archivo en la carpeta tmp, puede probar los cambios simplemente presionando el botón de actualización del navegador.

Cuestiones relacionadas