eclipse scala playframework-2.0

eclipse - "El índice de objetos no es miembro del paquete views.html" al abrir el proyecto de scala play en scala ide



playframework-2.0 (10)

Creé un proyecto de juego con play 2.3.7

En el directorio del proyecto, ejecuté activador y ejecuté el comando eclipse para generar archivos de proyecto de eclipse.

Cuando voy a eclipse (estoy usando el IDE de Scala de la Id. De compilación de tipo seguro: 4.0.0-vfinal-20150119-1023-Typesafe, hay un error en mi archivo Application.scala:

object index is not a member of package views.html

¿Hay algo mal con mi configuración? La aplicación funciona bien cuando ejecuto run en el indicador de la consola de activación.

¡Gracias!

EDITAR: código agregado

package controllers import play.api._ import play.api.mvc._ object Application extends Controller { def index = Action { Ok(views.html.index("Your new application is ready.")) } }

El error está en la línea ''Ok ...''.

Hay un archivo en vistas llamado index.scala.html, y la aplicación ejecuta el archivo cuando lo ejecuto desde el activador.


1) Agregue la siguiente línea a su archivo sbt.build:

EclipseKeys.preTasks := Seq(compile in Compile)

2) Agregue la siguiente línea a su archivo plugins.sbt debajo de la carpeta del proyecto:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")

3) Ejecuta el comando "eclipse" desde dentro de sbt

como se explica en la documentación del marco de juego:

Configurando su IDE preferido


Agregando target/scala-2.11/twirl/main que está teniendo el paquete views.html a la fuente arreglado para mí.


Básicamente, necesitamos una forma de poner las clases compiladas en la ruta para que esto funcione.

Hice lo siguiente para solucionarlo. Dado que los proyectos se compilan en el directorio de target . Fui a Project Properties -> Java Build Path y agregué algunas carpetas que se ven así,

target / scala-2.12 / routes / target principal / scala-2.12 / twirl target / scala-2.12 / twirl / main

Ahora no quiero que suponga que tendrá estas carpetas exactas en su caso también. Eso depende de la configuración de tu proyecto. Pero debe agregar las carpetas dentro de la carpeta target / scala-2.x.



La respuesta de @brent-foust funcionó para mí, pero solo inicialmente. Cada vez que reconstruía el proyecto desde IDEA, obtenía errores de "no encontrado: rutas" desde target/scala-2.11/twirl/main/views/html/main.template.scala hasta que realizaba la solución alternativa de Brent nuevamente.

Finalmente descubrí que la solución a eso era cambiar una línea en el archivo .iml de

<excludeFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" />

a

<sourceFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" isTestSource="false" />

No sé cuáles son las implicaciones a largo plazo de hacer esto, pero ha solucionado este problema. Algunos de los otros problemas similares mencionados también pueden corregirse aplicando el mismo cambio a algunas de las otras carpetas enumeradas en .iml.


Las otras soluciones no funcionaron para mí. Algunos me darían diferentes errores, algunos views.html.index la pestaña Problemas pero me dejarían un garabato rojo en views.html.index y el autocompletar no funcionaría con las plantillas scala.html.

Lo que finalmente funcionó fue abrir las propiedades del proyecto, ir a Java Build Path > Source y agregar los dos directorios siguientes:

target/scala-2.11/src_managed/main target/scala-2.11/twirl/main

Si solo hace target/scala-2.11/twirl/main , perderá los archivos de clase generados desde el directorio conf .


Ocasionalmente, después de agregar una vista en Play 2.4.x, IntelliJ IDEA a veces se confunde y se niega por completo a compilar. Incluso el proyecto de reconstrucción falla:

Esto todavía ocurre de vez en cuando en IDEA 15. Y cuando lo hace, la línea de comando proporciona la solución más rápida y confiable:

sbt clean; sbt compilar

¡Eso es! IDEA ahora compilará el proyecto como se esperaba.

Actualizar:

En el raro caso de que la sbt compile completado correctamente en la línea de comando, pero IntelliJ IDEA 15 sigue dando el mismo error de "objeto x no es miembro", esto ha solucionado la confusión de IDEA:

Menú Archivo:


Para mí, cuando importé el proyecto a intellij asegurándome de que "marcaba" la casilla de verificación "importación automática" hice el truco.


Tuve el mismo problema al ejecutar Play 2.4.0-RC1 usando el diseño SBT predeterminado ( disablePlugins(PlayLayoutPlugin) ) y lo resolví agregando a build.sbt :

sourceDirectories in (Compile, TwirlKeys.compileTemplates) := (unmanagedSourceDirectories in Compile).value


Yo tuve el mismo problema. target/scala-2.x/classes_managed target/scala-2.x/classes y target/scala-2.x/classes_managed a mi ruta de compilación Java y Eclipse dejó de quejarse.