IntelliJ IDEA报告在Controller中使用路由时突出显示错误

我有一个Scala Play项目。 我正在使用Play 2.2.1。 我下载了Scala,Play 2支持和SBT插件。 一切正常,但是当我在Controller中调用Action时会出现以下错误(请看截图):

Screenshot1

Screenshot2

我正在使用IntelliJ IDEA 12.1.6 Ultimate版本。 斯卡拉版本2.10.2

有人知道如何解决这个问题?

提前致谢!


编辑

当我通过播放控制台中的“play idea”命令将我的项目生成到Intellij IDEA中,并且我在IDEA项目结构中打开项目时是这样的:

screenshot6

然后我看到了答案@millhouse和讨论这个githup( [播放2.2]“玩的想法”创build不工作源目标映射 ),我从源文件夹中删除以下文件

  • 目标\阶-2.10 \ src_managed \主\控制器
  • 目标\斯卡拉2.10 \ src_managed \主\意见

和“报告突出错误”消失了,但现在又出现了另一个错误:

screenshot3

screenshot7

我的路线:

screenshot4

我已经改变了“Sources Folders”,如下所示:

screenshot5

但它不能帮助我。 并保持“未指定的值参数”错误。

毫无疑问的答案帮助我find了正确的答案。 播放2.2(也许更早的版本,没有检查)输出path文件的scala版本到project_dir/target/scala-2.10/src_managed/main因此,对于IntelliJ来获得突出显示的权利,你需要确保src_managed/main被添加为一个源文件夹。 JavaScript的反向路由由于某种原因包含在project_dir/target/scala-2.10/classes_managed所以您也必须添加该project_dir/target/scala-2.10/classes_managed 。 (在你的屏幕截图中, classes_managed看起来像排除在外,所以你可以通过按右边的xbutton来取消排除它。)

这里是我的项目结构的屏幕截图:

工作Play 2.2项目结构

更新

在Play 2.3(或者最近版本的IntelliJ)中,添加classes_managed不再解决问题。 不要将classes_managed添加到项目的源代码中,而是将它添加到它的依赖项中。 通过这样做IntelliJ应该能够拿起编译的routes.class。

工作Play 2.3依赖列表

这是一个常见的问题,这是因为IntelliJ需要显示在哪里查找编译的 Scala模板和routes文件。 以下是我在IntelliJ 12.1安装中的修复方法:

  • 在IntelliJ中转到项目的模块设置(select顶层,按F4)
  • 在出现的“项目结构”窗口中select“模块”项目
  • select项目名称项目(而不是projectname-build项目)
  • 将编译器的输出目录添加到源文件夹项目;
    • 对于Scala 2.10,它的target/scala-2.10/classes
    • 我个人发现IntelliJ UI非常不直观, 您可能需要先将target目录和/或其某个子目录从“ 排除的文件夹”中取出
  • 在应用这个改变之后,IntelliJ应该将每条routes.scala.html文件的结果看作是另一个源文件,所以它们不会显示为“破碎”,自动完成应该为它们工作。