2013-12-12 18 views
5

我正在使用Intellij 13 Ultimate並希望創建一個Play框架示例。但我無法建立這個項目,因爲它總是拋出這個錯誤:如何在Intelllij 13中運行playframework樣本?

object index is not a member of package views.html 
Ok(views.html.index("Your new application is ready.")) 

我已經試過這在Mac和Windows平臺,但錯誤總是相同的。

我該如何解決這個問題?

+0

您是否使用'play idea'創建Intellij項目文件? http://www.playframework.com/documentation/2.2.0/IDE – tmbo

+0

我使用Intellij來生成項目。讓我嘗試通過Activator創建遊戲項目並導入到inteliij。謝謝 –

+0

sbt idea插件有助於將部分目標目錄添加到源路徑。我猜是因爲目標目錄中的這個文件夾在您的Intellij配置中缺失,所以無法找到已編譯的模板。 – tmbo

回答

11

該生成工作正常,所有路徑都正確添加到構建。然而,路由不是由插件(scala + playframework)編譯的,因此由intellij生成的反向路由類不適用於intellij。 您將遇到與模板相同的問題。

如果您運行一個播放編譯(或一個sbt編譯),這些類將被生成,並且intellij應該能夠選取它們並編譯您的項目。

+1

對於任何使用激活器的人,只需在應用程序的文件夾中執行「激活器編譯」,它的工作原理也是一樣的。 –

-2

我有同樣的問題:在理念13中有突出錯誤,但在理念12中一切正常。原因在於Idea 13沒有Scala插件,因此目前無法在Idea 13中使用它。

解決方案是安裝Idea 12,轉到首選項 - >插件,鍵入「Scala」在查找框中,並安裝Scala插件。

+0

Idea 13有一個Scala插件。 –

0

在新的項目根目錄下運行「play idea」爲我修復了它。項目應該在重新加載後編譯並運行。

我只有通過Idea的New Project菜單創建的項目出現此問題。

1

我在這裏找到了一招。

如果使用激活命令行激活器生成play-scala項目[new my_first_project play-scala]。你會得到以下的構建文件。

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" 

,但如果你從intellj使用NewProject->斯卡拉播放2.x中創建一個項目,你將得到下面的SBT。

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設爲虛假

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

希望有所幫助。