2012-04-06 9 views
22

Quindi, sto provando Play 2 con Eclipse. Creo un nuovo progetto, lo compilo, eseguo eclipsify e lo importa in Eclipse. Fin qui tutto bene.Come rendere Eclipse vedere le modifiche in Play! modelli compilati?

Il problema che sto avendo è che quando apporto una modifica al modello di Scala, i miei controller Java non riescono a vederlo e Eclipse contrassegna il codice come non valido. Per esempio:

ho aggiunto un secondo parametro nel mio modello indice

@(message: String, nesto:Integer) 

Quando cerco di rendere il mio file dal controller, la seguente riga visualizza un errore, perché Eclipse pensa ancora che l'index.render prende una stringa.

return ok(index.render("Your new application is ready.",2)); 

ho acceso il lavoro rinfrescante in Eclipse, e gioca eclipsify automaticamente aggiunto alla directory classes_managed al percorso di generazione.

risposta

6

Ho fatto le seguenti cose:

  1. volta che avete fatto, ho acceso il lavoro di aggiornamento automatico (in Impostazioni, Generali -> Area di lavoro, quindi selezionare "Aggiorna tramite ganci nativi o pooling")
  2. ho rimosso la directory classes_managed generato da play eclipsify dal mio percorso di generazione, e ho aggiunto manualmente utilizzando "Aggiungi cartella classe esterna"

e poi ha funzionato per me. Sembra che ci sia un bug con il comando eclipsify.

+0

Ho appena modificato la risposta, dal momento che avevo usato "Aggiungi cartella di classe esterna" invece di "Aggiungi cartella di classe" –

+1

Ancora niente. Quale versione di Eclipse hai usato? – Nefron

+0

Eclipse Indigo 3.7.2 –

5

Il trucco è avere Play build automaticamente in background (i file modello non sono attualmente creati da Eclipse, quindi è necessario giocare per tradurre quelli per te). E 'tutto spiegato in dettaglio qui:

[link morto] http://scala-ide.org/docs/tutorials/play20scalaide20/index.html

[provare questo] http://scala-ide.org/docs/tutorials/play/index.html#installing-the-scala-ide-play2-plug-in

+3

Sto eseguendo Riproduci con riproduzione ~ esecuzione, quindi sta costruendo modelli in background. Le cose sul link che hai postato funzionano bene quando il controller è scritto in Scala. – Nefron

+0

Scusa, ho perso in qualche modo che il controller fosse in Java. –

4
  1. Run 'gioco Eclipse' sulla linea di comando
  2. In Eclipse, aggiornamento il tuo progetto toccando F5
+0

funzionerà perfettamente.grazie a namoo .. – hari

+0

Assicurati inoltre di aggiornare 'sbteclipse' alla versione' 5.1.0' (che è stata rilasciata il 12 gennaio 2017) - corregge i bug correlati. – mkurz

1

Per Java Play Framework v2.4.6 (attivatore v1 .3.7) con Eclipse Mars:

Invece di @(message: String, nesto:Integer), hai provato questo @(message: String)(nesto: Integer)?

In modo che non si avrà un "non può risolvere l'errore" con la vostra index.render(), è possibile aggiungere questo <classpathentry kind="lib" path="target/scala-2.11/classes"/> al .classpath oppure fare clic destro sul vostro progetto -> costruire il percorso -> Configura costruire il percorso -> Aggiungi classe Cartella e farlo puntare a target/scala-2.11/classes.

Problemi correlati