java eclipse macos playframework jnotify

Play Framework 2.1 Java/Eclipse: Auto-Reload no funciona



macos playframework (3)

Siguiendo la sugerencia de Akim, deshabilitar la Build automatically en General/Workspace en las Preferencias de Eclipse resuelve el problema y vuelve a habilitar la funcionalidad de recarga automática de Play! En todos los casos de problemas anteriores.

Los problemas:

  • Las vistas se están compilando, pero al actualizar en un navegador no se mostrarán los cambios sin reiniciar el servidor manualmente.
  • Los cambios en los controladores se compilan automáticamente con ~run pero solo un reinicio manual del servidor actualizará el contenido en el servidor.
  • Los cambios en las routes bajo conf solo se muestran después de reiniciar manualmente el servidor.

Fondo:

  • ejecutándose en OSX 10.8.3
  • usando Eclipse Juno 4.2.2
  • El servidor se inicia con play ~run
  • Solo al reiniciar el servidor se mostrarán cambios en las vistas, los controladores y las rutas

Para poder hacer cambios sin tener que reiniciar el servidor cada vez que lo intenté (sin éxito):

  • en la consola: clean -> eclipse -> ~run
  • en la consola: clean -> compile -> ~run
  • apagar / reiniciar la computadora
  • Marque Refresh using native hooks or polling -> eliminar classes_managed de Referenced Libraries y agregarlas manualmente

Preguntas:

  • ¿Cómo se puede restaurar la funcionalidad de Auto-Reload?
  • ¿Cómo se puede resolver este problema en IDEs además de Eclipse?

Más información:

Ambos señalan que JNotify es la causa de que la recarga automática no funcione. Una de las respuestas (no es suficiente representante para escribir un comentario) menciona cómo se podría "piratear el plugin sbt de Play Framework para que el rasgo de PlayReloader se comporte como si JNotify no estuviera disponible". ¿Cómo podría uno lograr esto?


A continuación, se activó la recarga automática de Play para trabajar con Eclipse:

  1. En Preferencias de Eclipse, vaya a GeneralWorkspace . Desmarque Build automatically .
  2. Reinicie OS X.

Por alguna razón, tuve que reiniciar OS X para obtener la sugerencia de Akim de tomar control.


Solucioné este problema cambiando la configuración del proyecto en Eclipse. Desactivé la opción "Permitir carpetas de salida para carpetas de origen", lo que significa que Eclipse compilará clases en la carpeta "bin". Esto evita que la compilación Eclipse interfiera con la compilación Play. El único inconveniente es que debes recordar rehacerlo si alguna vez vuelves a play eclipse .