java - videos - ¡Cómo hacer que Eclipse vea los cambios en Play! plantillas compiladas?
el eclipse en vivo (4)
Entonces, estoy probando Play 2 con Eclipse. Creo un nuevo proyecto, lo compilo, ejecuto eclipsify y lo importo a Eclipse. Hasta ahora tan bueno.
El problema que tengo es que cuando hago un cambio en la plantilla de Scala, mis controladores Java no pueden verlo y Eclipse marca el código como no válido. Por ejemplo:
Agregué un segundo parámetro en mi plantilla de índice
@(message: String, nesto:Integer)
Cuando intento procesar mi archivo desde el controlador, la siguiente línea muestra un error, porque Eclipse aún cree que el index.render toma una cadena.
return ok(index.render("Your new application is ready.",2));
Activé la actualización del área de trabajo en Eclipse, y el juego eclipsify automáticamente agregó el directorio classes_managed a la ruta de compilación.
- Ejecuta ''play eclipse'' en la línea de comando
- En Eclipse, actualice su proyecto presionando F5
El truco es hacer que Play se construya automáticamente en segundo plano (los archivos de plantilla no están construidos actualmente por Eclipse, por lo que necesita Play para traducirlos para usted). Todo se explica en detalle aquí:
[enlace muerto] http://scala-ide.org/docs/tutorials/play20scalaide20/index.html
[prueba este] http://scala-ide.org/docs/tutorials/play/index.html#installing-the-scala-ide-play2-plug-in
Hice las siguientes cosas:
- Como lo hizo, activé la actualización automática del área de trabajo (en la configuración, General -> Área de trabajo, luego seleccioné "Actualizar mediante ganchos nativos o agrupación")
-
classes_managed
directorioclasses_managed
generado porplay eclipsify
de mi ruta de compilación, y lo agregué manualmente usando "Agregar carpeta de clase externa"
Y luego funcionó para mí. Parece que hay un error con el comando eclipsify
.
Para Java Play Framework v2.4.6 (activator v1.3.7) con Eclipse Mars:
En lugar de @(message: String, nesto:Integer)
, ¿has probado esto @(message: String)(nesto: Integer)
?
Para que no tenga un "error no se puede resolver" con su index.render()
, puede agregar <classpathentry kind="lib" path="target/scala-2.11/classes"/>
a su .classpath
o haga clic con el botón derecho en su proyecto -> Crear ruta -> Configurar crear ruta -> Agregar carpeta de clases y haga que apunte a target/scala-2.11/classes
.