IntelliJ IDEA报告在Controller中使用路由时突出显示错误
我有一个Scala Play项目。 我正在使用Play 2.2.1。 我下载了Scala,Play 2支持和SBT插件。 一切正常,但是当我在Controller中调用Action时会出现以下错误(请看截图):
我正在使用IntelliJ IDEA 12.1.6 Ultimate版本。 斯卡拉版本2.10.2
有人知道如何解决这个问题?
提前致谢!
编辑
当我通过播放控制台中的“play idea”命令将我的项目生成到Intellij IDEA中,并且我在IDEA项目结构中打开项目时是这样的:
然后我看到了答案@millhouse和讨论这个githup( [播放2.2]“玩的想法”创build不工作源目标映射 ),我从源文件夹中删除以下文件夹 :
- 目标\阶-2.10 \ src_managed \主\控制器
- 目标\斯卡拉2.10 \ src_managed \主\意见
和“报告突出错误”消失了,但现在又出现了另一个错误:
和
我的路线:
我已经改变了“Sources Folders”,如下所示:
但它不能帮助我。 并保持“未指定的值参数”错误。
毫无疑问的答案帮助我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.3(或者最近版本的IntelliJ)中,添加classes_managed不再解决问题。 不要将classes_managed添加到项目的源代码中,而是将它添加到它的依赖项中。 通过这样做IntelliJ应该能够拿起编译的routes.class。
这是一个常见的问题,这是因为IntelliJ需要显示在哪里查找编译的 Scala模板和routes
文件。 以下是我在IntelliJ 12.1安装中的修复方法:
- 在IntelliJ中转到项目的模块设置(select顶层,按F4)
- 在出现的“项目结构”窗口中select“模块”项目
- select项目名称项目(而不是projectname-build项目)
- 将编译器的输出目录添加到源文件夹项目;
- 对于Scala 2.10,它的
target/scala-2.10/classes
- 我个人发现IntelliJ UI非常不直观, 您可能需要先将
target
目录和/或其某个子目录从“ 排除的文件夹”中取出
- 对于Scala 2.10,它的
- 在应用这个改变之后,IntelliJ应该将每条
routes
和.scala.html
文件的结果看作是另一个源文件,所以它们不会显示为“破碎”,自动完成应该为它们工作。
- 将Gradle支持添加到IntelliJ Project的最佳方法
- 如何更改IntelliJ IDEA中“默认gradle包装”的版本?
- 错误:java:无效的源版本:8在Intellij。 这是什么意思?
- 如何使IntelliJ IDEA识别由macros创build的代码?
- 是否有一个适用于Eclipse的IntelliJ Keymapping插件?
- 在Intellij的想法下,Lombok注释不能被编译
- 在IntelliJ IDEA中导入Maven依赖关系
- 如何在IntelliJ IDEA中添加库(android-support-v7-appcompat)
- 添加一个属性文件到IntelliJ的类path