我正在使用Intellij 13 Ultimate并希望创建一个Play Framework示例。但是我无法构建这个项目,因为它总是抛出这个错误:
object index is not a member of package views.html
Ok(views.html.index("Your new application is ready."))
我在Mac和Windows平台上都试过这个,但错误始终是一样的。
我该如何解决这个问题?
答案 0 :(得分:11)
生成工作正常,所有路径都正确添加到构建中。但是,路径(尚未)通过插件(scala + playframework)进行编译,因此播放生成的反向路由类不适用于intellij。 您将遇到与模板相同的问题。
如果你运行一个play compile(或一个sbt compile),那么将生成这些类,intellij应该可以选择它们并编译你的项目。
答案 1 :(得分:1)
我在这里找到了一个技巧。
如果使用激活器命令行激活器[ new my_first_project play-scala ]生成play-scala项目。您将获得以下sbt构建文件。
name := """my_first_project"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.7"
libraryDependencies ++= Seq(
jdbc,
cache,
ws,
"org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test
)
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
但如果您使用NewProject-> Scala-Play 2.x从intellj创建项目,您将获得以下内容。
name := "my_second_project"
version := "1.0"
lazy val `my_second_project` = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.7"
libraryDependencies ++= Seq( jdbc , cache , ws , specs2 % Test )
unmanagedResourceDirectories in Test <+= baseDirectory ( _ /"target/web/public/test" )
resolvers += "scalaz-bintray" at "https://dl.bintray.com/scalaz/releases"
fork in run := false
组合后。忽略名称。我将for in run
设置为false
name := "my_second_project"
version := "1.0"
lazy val `my_second_project` = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.7"
libraryDependencies ++= Seq( jdbc , cache , ws , specs2 % Test )
unmanagedResourceDirectories in Test <+= baseDirectory ( _ /"target/web/public/test" )
resolvers += "scalaz-bintray" at "https://dl.bintray.com/scalaz/releases"
fork in run := false
这样做之后。使用Intellj打开激活器生成的项目,使用Play 2.x run
配置运行。一切顺利。
顺便说一下,如果在更改sbt文件之前打开激活器生成的项目。您可能需要rm -r .idea
希望有所帮助。
答案 2 :(得分:0)
在新项目根目录中运行“play idea”为我修复了它。该项目应在重新加载后编译并运行。
我对通过Idea的New Project菜单创建的项目只有这个问题。
答案 3 :(得分:-2)
我遇到了同样的问题:在Idea 13中有突出显示错误,但在Idea 12中一切正常。原因是Idea 13没有Scala插件,所以现在不可能让它在Idea 13中运行。
解决方案是安装Idea 12,转到偏好设置 - &gt;插件,在查找框中键入“Scala”,然后安装Scala插件。