2012-05-16 10 views
14

Estoy utilizando Play Framework 2.0.1. He creado una aplicación Java usando el comando "Jugar nuevo". De forma predeterminada, se crean dos vistas: index.scala.html y main.scala.htmlLas vistas scala.html recién creadas no se reconocen en Play Framework 2.x

He hecho unas pocas aplicaciones tutoriales de muestra que me permiten representar esas vistas. Sin embargo, cuando agrego un nuevo punto de vista (por defecto en app/views /), me sale un error de compilación que no se puede encontrar:

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

puedo hacer

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

pero no

import views.html.simpleCarView; 

error en la consola:

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

He intentado agregar scala.html vistas en el directorio de archivos y desde dentro de eclipse, pero por alguna razón no se encuentran. También intenté reiniciar el servidor Netty predeterminado.

¿Alguna idea sobre qué está causando esto?

+0

tener el mismo problema con playframework 2.1.3. El problema era que la idea de IntelliJ optimizaba mis importaciones de esta manera: import views.html.index $; – ses

Respuesta

24

Las vistas no son compiladas por Eclipse, pero se pueden ver por eclipse después de que Play las compile, siempre y cuando el directorio target \ scala-2.9.1 \ classes_managed esté en su ruta de compilación del proyecto Eclipse.

intente ejecutar "jugar compilar" en la línea de comandos (o simplemente "compilar" si ya está en la consola de juego) y luego actualizar su proyecto dentro de Eclipse (seleccione el proyecto y pulsa F5)

+0

He hecho "play compile" y recibo el error que publiqué en mi pregunta. Cuando compilo, dice que se están compilando dos fuentes de scala y 1 fuente de Java. Supongo que está hablando de mi Application.java y index.scala.html y main.scala.html. Pero otras vistas no se están compilando en la carpeta de vistas. –

+0

Después de hacer muchas refrescantes, eliminar/leer vistas, volver a compilar, etc., el problema parece haberse solucionado. No he podido reproducir el extraño comportamiento que describí antes. En general, su respuesta describe los mejores pasos a seguir, así que lo marcaré como la respuesta. –

+0

phew! me salvó. – Nishant

3

Su puede utilizar

~compile 

en la consola de juego para que las plantillas actualizadas sea recompilado sobre el cambio de archivos y probablemente Eclipse verán cambios de forma inmediata (IDEA hace eso).

+0

Funciona bien. También puede usar ~ run para obtener las plantillas compiladas automáticamente sobre la marcha mientras se ejecuta el servidor. – stian

0

hago lo mismo play compile que InPursuit sugirió, pero cuando agrego una vista completamente nueva, he encontrado que necesito cerrar el proyecto y volverlo a abrir para que eclipse reconstruya su información de "asistencia de contenido".

Simplemente hago clic derecho en el proyecto y elijo "Cerrar proyecto", y luego hago clic derecho en la carpeta del proyecto ahora vacía y elijo "Abrir proyecto". Es molesto, pero esa es la única forma (salvo el reinicio del eclipse) que me ha funcionado. A veces los squigglies rojos todavía están allí después de reabrir, pero se van si hago una actualización.

1

He tenido este comportamiento también. Resulta que era un problema típico de copiar/pegar. Me olvido de actualizar la declaración de importación.

4

Para ti, usuarios de IntelliJ 12: Actualicé a Play 2.1, que rompió mi extensión Play IntelliJ Support. Esto causó IntelliJ que no reconoce:

import views.html.*; 

así que cuando golpear cmd + o para optimizar mis importaciones se quitó.Este resultet un error de compilación cuando se ejecuta desde play clean compile los puntos de vista no fueron importados:

[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 - 

Así que desinstalar el plugin, reinicia IntelliJ y viola todo funciona como un encanto!

2

Esto me sucedió después de que copié todo un proyecto e intenté modificarlo. Los cambios en las vistas HTML simplemente se ignorarían ya que no se compilaron.

Haciendo activator clean compile run solucionó el problema.

0

En mi caso acabo añade la siguiente importación:

import views.html.*; 

El Eclipse IDE elimina la línea mencionada, si a organizar sus importaciones a través CTRL + SHIFT + O

Cuestiones relacionadas