2012-06-22 14 views
7

Tengo un pequeño problema (más como una molestia, realmente) cuando uso el Play Framework con Eclipse.Jugar Framework + Eclipse: método indefinido para ReverseApplication

Estoy siguiendo this tutorial para comenzar a jugar. En un determinado momento en el tutorial, se nos pide que escriba este código:

public static Result index() { 
    return redirect(routes.Application.tasks()); 
} 

Esto funciona como se espera cuando se ejecuta la aplicación. El problema es que a Eclipse no le gusta. Dice:

Las tareas de método() está definido para el tipo ReverseApplication

tiempo que subraya tareas con la línea roja punteada. ¿Hay alguna razón para que esto suceda? Intenté limpiar y compilar el proyecto (a través del terminal Play) y actualizar el proyecto en Eclipse, pero fue en vano.

¿Hay algo que pueda hacer al respecto?

Estoy usando Eclipse Juno, construir 20120606-2254

Muchas gracias!

Respuesta

10

Dado que las vistas son de código Scala, son compiladas por el compilador Scala (es decir, su consola Play a través de sbt). Entonces Eclipse no puede compilar y encontrar estos.

Por lo tanto, la mejor opción es configurar Eclipse para que automatically refresh the workspace y asegúrese de que la carpeta "blanco/scala-2.9.1/classes_managed" está en su ruta de compilación (que debe ser realizado por el comando "eclipsify")

Si no funciona después de todos estos pasos, intente "limpiar", "compilar" y "eclipsify" (para Play 2.0.x) o "eclipse" (para Play 2.1.x) y actualice su proyecto.

+2

impresionante! Al ejecutar "limpiar", "compilar", "eclipsificar" y actualizar el proyecto, lo hizo. Lo extraño es que el directorio "target/scala-2.9.1/classes_managed" ya estaba en la ruta de compilación. De todos modos, problema resuelto. ¡Gracias! :) –

+0

Resultado similar. Corrí "play clean, luego play compile", y finalmente "play eclipse" y eso hizo el trabajo por mí. "Eclipsify" no funcionó para mí en la versión 2.1 –

+0

Sí, ha sido reemplazado por "eclipse" en Play 2.1. Actualicé la respuesta. Gracias por el puntero :-) –

6

Cierre y abra su proyecto en Eclipse. Esto funcionó para mí (Eclipse Juno).

+0

+1 Funcionó para mí en Scala IDE 3.0.2. La limpieza, compilación y actualización no. – mtsz

+0

El cerrar y volver a abrir la solución Eclipse (índigo) funciona para mí. – null

2

Ninguna de las sugerencias anteriores funcionó para mí, pero cuando hice una actualización en la carpeta objetivo, el subrayado rojo en mis referencias de vista desapareció.

0

Sé que ha pasado un año desde la respuesta de @ nico_ekito pero solo quería agregar esto. Agregar /target/scala-2.10/classes_managed y asegurarse de que Eclipse actualiza automáticamente el área de trabajo me lo arregló. Gracias @nico_ekito

Usando Eclipse Kepler, juego marco 2.2.2

1

El comando de reproducción que antes se llamaba "eclipsify". Ahora se llama "eclipse".

Generalmente, hago lo siguiente y funciona bastante bien con Eclipse

-at the start of the day, start the play console in your project dir and do 'clean' and 'run' 
-open a web browser point to the app (localhost:9000) 
-launch eclipse 
-make code changes... 
-Play will rebuild the app whenever code changes occur. So refreshing the app in 
    the browser. 
-back in eclipse, Refresh the project to reload the files that play rebuild just made. 
+0

Esto funcionó para mí también :) – big

Cuestiones relacionadas