2012-06-22 10 views
7

Sto avendo un piccolo problema (più come un fastidio, in realtà) quando si utilizza Play Framework con Eclipse.Play Framework + Eclipse: metodo non definito per ReverseApplication

Sto seguendo this tutorial per iniziare con Play. In un certo momento nel tutorial, ci chiede di digitare il codice:

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

Questo funziona come previsto quando si esegue l'applicazione. Il problema è che a Eclipse non piace. Dice:

I compiti() viene definito per il tipo di ReverseApplication

Nel sottolineare compiti con la linea rossa tratteggiata. C'è una ragione per questo? Ho provato a pulire e compilare il progetto (tramite il terminale Play) e ad aggiornare il progetto in Eclipse, ma senza risultato.

C'è qualcosa che posso fare al riguardo?

Sto usando Eclipse Juno, costruire 20120606-2254

grazie mille!

risposta

10

Poiché le viste sono codice Scala, vengono compilate dal compilatore Scala (ad es. Play Console tramite sbt). Quindi Eclipse non può compilare e trovare questi.

Quindi, l'opzione migliore è configurare Eclipse in modo che sia automatically refresh the workspace e assicurarsi che la cartella "target/scala-2.9.1/classes_managed" sia nel percorso di generazione (dovrebbe essere eseguita dal comando "eclipsify").

Se non funziona dopo tutti questi passaggi, prova "clean", "compile" ed "eclipsify" (per Play 2.0.x) o "eclipse" (per Play 2.1.x) e aggiorna il tuo progetto.

+2

Impressionante! Eseguire "clean", "compile", "eclipsify" e aggiornare il progetto lo ha fatto. La cosa strana che la directory "target/scala-2.9.1/classes_managed" era già sul percorso di build. Ad ogni modo, il problema è risolto. Grazie! :) –

+0

Risultato simile. Ho eseguito "play clean, play compile, e infine" play eclipse "e questo ha funzionato per me." Eclipsify "non ha funzionato per me sulla versione 2.1 –

+0

Sì, è stato sostituito con "eclipse" in Play 2.1. Ho aggiornato la risposta. Grazie per il puntatore :-) –

6

Chiudi e apri il tuo progetto in Eclipse. Questo ha funzionato per me (Eclipse Juno).

+0

+1 Ha funzionato per me in Scala IDE 3.0.2. Pulizia, compilazione e aggiornamento no. – mtsz

+0

La chiusura e riapertura della soluzione di Eclipse (indigo) funziona per me. – null

2

Nessuno dei suggerimenti precedenti ha funzionato per me, ma quando ho effettuato un aggiornamento sulla cartella di destinazione , la sottolineatura rossa sui riferimenti della mia vista è scomparsa.

0

So che è stato un anno dalla risposta di @ nico_ekito ma volevo solo aggiungere questo. Aggiungendo /target/scala-2.10/classes_managed e assicurando che Eclipse aggiorni automaticamente l'area di lavoro lo ha risolto per me. Grazie @nico_ekito

Utilizzo Eclipse Keplero, il gioco quadro 2.2.2

1

il comando Play utilizzato per essere chiamato "eclipsify". Ora è chiamato "eclissi".

In generale, faccio la seguente e funziona abbastanza bene 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

Questo ha funzionato anche per me :) – big