2011-03-07 15 views
16

¡Después de mirar el juego! marco Me resulta muy productivo que el servidor de desarrollo que viene automáticamente pueda compilar archivos .java y mostrar los cambios, de inmediato. No hay un escáner de implementación en caliente que se ejecute cada pocos segundos aproximadamente. La compilación ocurre cuando pulses actualizar y es extremadamente más rápido que mi incremental mvn package. ¿Cómo lo hacen?¡Juego! Marco web Java. ¿Cómo se compila su servidor de desarrollo automáticamente?

Me gustaría saber, bueno, porque me interesa saber, ¡pero también porque no quiero usar todo el Play! marco para mi pequeño proyecto. Solo me interesa su proceso de compilación de desarrollo porque me gustaría adoptarlo :).

¿Alguna idea?

+1

posible duplicado de [¿Cómo funciona el Marco de Juego?] (Http: // stackoverflow.com/questions/5190606/how-does-the-play-framework-function) – Codemwnci

+0

Bien, he explicado una diferencia importante entre la recarga de Play y la recarga de JRebel en el hilo enlazado: http://stackoverflow.com/questions/5190606/how-do-the-play-framework-function/5907403 # 5907403 – v6ak

Respuesta

8

Estaba leyendo sobre esto esta mañana. En realidad toma sus archivos fuente y utiliza el compilador Eclipse Java (ECJ) internamente antes de escupir los archivos compilados al servidor de desarrollo integrado.

Lo que pasa es que probablemente no desee querer hacer el esfuerzo de cablear el ECJ en su "pequeño proyecto".

Puede definitivamente aproximado que sin embargo - el truco es no hacer un paquete de MVN, por el contrario desea estar disminuyendo los archivos modificados .class en el directorio warfile explotado de su aplicación web en el sistema de archivos.

Si no está atado a un servidor de aplicación/contenedor en particular, echar un vistazo a la Eclipse Jetty Plugin - Parece que es lo que necesita, y Jetty es rápida

+0

Cuando vi esta pregunta hace un momento, estaba a punto de sugerir que OP construyera algo encima de Eclipse RCP por exactamente la misma razón, pero luego vi el pequeño proyecto y lo pensé mejor. Parece que los desarrolladores de juegos tenían la misma idea :) – CurtainDog

+0

Probé el plugin Maven Jetty, ¡y no es tan rápido como el Play! marco (ECJ). Me pregunto si hay un contenedor de servlets que funcione con este compilador Eclipse Java porque es sorprendentemente rápido. –

+0

¿Puedo usar el compilador de Eclipse con mi proyecto de servlet existente? –

0

No soy un desarrollador de Play, sin embargo, Struts2 también es capaz de hacerlo, pero a través del struts2-spring-plugin. Como Spring proporciona la recarga de clase, es posible utilizar esta característica de primavera en cualquier proyecto.

http://struts.apache.org/2.2.1/docs/spring-plugin.html Busque en la página "Class Reloading".

+1

¿Alguien todavía está utilizando struts? .... interesante – joshua

+1

No no Struts, Struts 2 (S2). Son productos diferentes con diferentes bases de código. S2 es un framework Java MVC bastante popular y moderno (2008). Con una función a la par de Wicket y Spring MVC. – Quaternion

2

La forma en que lo hacen es mediante el uso de un cargador de clases personalizado que detectará los cambios en los archivos fuente, use el compilador Eclipse Java para compilar los archivos y luego intercambie en caliente las clases apropiadas en la JVM. Si está buscando algo similar, consulte JRebelJRebel de ZeroTurnaround, no es gratuito, pero vale la pena el ahorro de tiempo cuando necesita volver a implementar un proyecto grande.

4

JDT - Play! usa Eclipse JDT para compilar y cargar clases dinámicamente. De la misma forma que codificas en Eclipse, ves un mensaje de error o de advertencia tan pronto como escribes algo que no es deseable. Vea la clase ApplicationCompiler.

Es posible que también desee consultar JDT.

Cuestiones relacionadas