2013-05-13 176 views
4

我從Github檢出項目,然後運行sbt gen-idea並在IDEA中打開此項目。其中一個項目模塊使用Play 2.0 Framework。Intellij IDEA無法識別Play 2.0功能

但IDEA無法識別特定於Play!的符號。 也就是說我在下面的語句views.html.index中得到以下錯誤:cannot resolve symbol index

其他特定於Play的錯誤!框架功能,例如我得到routes變量相同的錯誤。

P.S.我已經安裝了Play 2.0ScalaSBT插件也配置播放2.0框架根目錄(Project Settings - Play configuration

回答

1

就個人而言,我不從的IntelliJ使用播放插件。使用命令行來編譯/生成不同的元素,包括着名的*.template.scala,在您的cannot resolve symbol index通知的起源處,總是更快更可靠。

您所要做的就是根據您的應用的根文件夾運行以下命令行:play然後compile。當然,不要再使用IntelliJ的Rebuild project,否則你會從命令行中刪除生成的類文件。在處理非管理資源(如模板)時,只需編制一個cmd+F9即可。

確保您的IntelliJ輸出編譯配置映射比你的應用程序的文件夾target同一文件夾(什麼sbt gen-idea(雖然我使用play然後idea with-sources=yes)通常便會進行自動配置)。

然後你的IntelliJ項目不會再抱怨一些views.html.index未解決。

當然,如果你真的想從你的IntelliJ IDE中受益,請確保你安裝了最新的Play 2.X plugin

或者,在IntelliJ中創建一個自定義run命令,以便考慮SBT編譯。

+0

嗨Mik的,當我使用打主意與來源=是的,不知何故,它抱怨與源不知道:'[錯誤]不是一個有效的關鍵:with-sources(類似:觀察來源,來源,資源)'你知道爲什麼嗎? – Jaap 2013-05-17 21:52:06

+1

您是否首先單獨鍵入'play'命令,然後輸入'idea with-sources = yes'? – Mik378 2013-05-18 20:41:59

+0

我嘗試了想法並將其作爲play.bat cmdline的參數。將嘗試建議的方式,謝謝! – Jaap 2013-05-19 00:37:26

1

對於任何使用Java Play 2.4.x和IntelliJ 15的人,我的同事們也一直在討論這個問題。我們安裝了Scala插件(它內置了SBT),我們所有的依賴關係都很好。事實證明,這個問題來自於他們開放項目的方式(不要問我爲什麼)。

務必: 文件 - >新建 - >從現有源項目...

別: 文件 - >打開

+0

在IDEA 2016.1中,我注意到在Scala插件拋出異常之後,Intellij默默禁用它。未來所有嘗試導入/打開Play(基於sbt)的項目都失敗了。我唯一的線索是Scala沒有列在新建項目對話框的語言選擇左欄中。我不確定Scala插件是否有問題,或者JetBrains是否使用它。 – devdanke 2016-03-24 05:34:14

+0

對於IDEA 2016.1,這裏是打開Play/sbt項目的詳細說明。 https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html? – devdanke 2016-03-24 05:37:44