2012-07-28 23 views
6

Conocí el framework Play, y una de las cosas asombrosas que encontré al respecto es que no hay necesidad de compilar el proyecto. Solo necesita guardar los archivos editados y volver a cargar la página web.Play framework. no es necesario compilar

Me han enseñado que el código fuente de Java se compila en bytecode y luego se compila con el compilador JIT, entonces, ¿cuál es la magia dentro de Play framework?

Respuesta

11

Cuando se ejecuta en modo DEV, Play funciona comprobando la última fecha de modificación de los archivos java, y haciendo una referencia cruzada con los archivos .class que se generan en tiempo de ejecución. Si reconoce que algo ha cambiado, entonces los recompila, en tiempo de ejecución.

En Play 1.x - la recompilación se realiza utilizando el compilador eclipse jdt (org.eclipse.jdt.internal.compiler.Compiler). Si desea ver el código de Play 1.x, simplemente mire la siguiente clase: https://github.com/playframework/play/blob/master/framework/src/play/classloading/ApplicationCompiler.java

En Play 2.x, parece que Play lo hace al interconectarse con la herramienta SBT. Mira esto - https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/core/system/ApplicationProvider.scala

4

Aunque no mencionaste qué versión de Play te sorprendió tanto en palabras simples, se puede describir de esa manera: Jugar en development mode mira todos los archivos que pertenecen a tu aplicación, y en caso de cualquier cambio recompila partes requeridas . Por lo tanto, DEV no debe utilizarse para la producción, ya que es una pérdida redundante del rendimiento. De lo contrario: cuando inicie su aplicación en modo de producción evitará la recompilación inmediata, sin embargo, obtendrá el rendimiento.

En juego 2 de ejecutar la aplicación es el modo de desarrollo hecho con

play run 

o

play ~run 

(primer comando vuelve a compilar el código tras página siguiente éxito, segundo después del próximo cambio de archivos)

La ejecución de la aplicación en modo de producción se puede realizar con

play start