2013-05-13 89 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