2012-05-16 8 views
14

Utilizzo Play Framework 2.0.1. Ho creato un'applicazione Java usando il comando "gioca nuovo". Per impostazione predefinita, vengono create due viste: index.scala.html e main.scala.htmlLe viste scala.html appena create non vengono riconosciute in Play Framework 2.x

Ho eseguito alcune app di esercitazione di esempio che mi consentono di visualizzare tali viste. Tuttavia, quando aggiungo una nuova vista (per impostazione predefinita in app/views /), ottengo un errore di compilazione che non può essere trovato:

public static Result getAllCars() { 
    List<Car> cars = Car.getAllCars(); 
    return ok(simpleCarView.render(cars)); 
} 

posso fare

import views.html.index; 
import views.html.main; 

ma non

import views.html.simpleCarView; 

errore in console:

cannot find symbol 
[error] symbol : variable simpleCarView 
[error] location: class controllers.Application 

Ho provato ad aggiungere viste scala.html nella directory dei file e da eclipse, ma per qualche motivo non sono stati trovati. Ho anche provato a riavviare il server Netty predefinito.

Qualche idea su cosa sta causando questo?

+0

avere lo stesso problema con play framework 2.1.3. Il problema era che l'idea IntelliJ ottimizzava le mie importazioni in questo modo: import views.html.index $; – ses

risposta

24

Le viste non sono compilate da Eclipse ma possono essere viste da Eclipse dopo che sono state compilate da Riproduci finché la directory di destinazione \ scala-2.9.1 \ classes_managed si trova nel percorso di creazione del progetto eclipse.

provare a eseguire "giocare compilare" sulla riga di comando (o semplicemente "compilazione" se siete già nella console di gioco) e poi aggiornare il progetto all'interno di Eclipse (selezionare il progetto e premere F5)

+0

Ho fatto "play compile" e ottengo l'errore che ho postato nella mia domanda. Quando compilo, dice due sorgenti scala e 1 sorgente Java è in fase di compilazione. Presumo che parli del mio Application.java e index.scala.html e main.scala.html. Ma altre viste non si stanno compilando sotto la cartella delle viste. –

+0

Dopo aver eseguito molte operazioni di aggiornamento, eliminazione/lettura di viste, ricompilazione, ecc., Il problema sembra essere andato via. Non sono stato in grado di riprodurre il comportamento strano che ho descritto in precedenza. In generale, la tua risposta descrive i passaggi migliori da seguire, quindi la contrassegnerò come risposta. –

+0

phew! mi ha salvato. – Nishant

3

tuo può usare

~compile 

in console gioco in modo che i modelli aggiornati avranno ricompilato sulla modifica di file e, probabilmente, Eclipse vedrà subito modifiche (IDEA lo fa).

+0

Funziona bene. Puoi anche usare ~ run per ottenere i template automaticamente ricompilati al volo durante l'esecuzione del server. – stian

0

faccio lo stesso gioco compilare che InPursuit suggerito, ma quando si aggiunge una visione completamente nuova che ho trovato che ho bisogno di chiudere il progetto e riaprirlo in modo che eclisse ricostruisce il suo "contenuto assistere" le informazioni.

Mi basta fare clic con il pulsante destro del mouse sul progetto e selezionare "Chiudi progetto", quindi fare clic con il pulsante destro del mouse sulla cartella del progetto ora vuota e scegliere "Apri progetto". È fastidioso, ma questo è l'unico modo (a parte il riavvio di Eclipse) che ha funzionato per me. A volte gli squigglie rossi sono ancora lì dopo la riapertura ma se ne vanno se faccio un aggiornamento.

1

Ho avuto questo comportamento pure. Risulta che era un tipico problema di copia/incolla. Ho dimenticato di aggiornare la dichiarazione di importazione.

4

Per gli utenti di IntelliJ 12: Ho eseguito l'aggiornamento a Play 2.1 che ha interrotto il mio plug-in di supporto per Play IntelliJ. Ciò ha causato IntelliJ di non riconoscere:

import views.html.*; 

così quando colpisce cmd + o per ottimizzare le mie importazioni è stato rimosso. Questo resultet in un errore di compilazione quando si esegue play clean compile dal i punti di vista non sono stati importati:

[error] symbol : variable index 
[error] location: class controllers.Application 
[error]   return ok(index.render()); 
[error]     ^
[error] 1 error 
[error] (compile:compile) javac returned nonzero exit code 
[error] application - 

Così ho disinstallato il plugin, riavviato IntelliJ e viola tutto funziona come un fascino!

2

Questo mi è successo dopo aver copiato un intero progetto e provato a modificarlo. Le modifiche nelle viste HTML sarebbero state ignorate poiché non erano state compilate.

Facendo il activator clean compile run risolto il problema.

0

Nel mio caso ho solo aggiunto il seguente importazione:

import views.html.*; 

l'IDE Eclipse rimuove la linea menzionato se ad organizzare le vostre importazioni attraverso CTRL + MAIUSC + O

Problemi correlati