播放框架教程:无法解析符号“索引”?
Posted
技术标签:
【中文标题】播放框架教程:无法解析符号“索引”?【英文标题】:Play framework tutorial: Cannot resolve symbol 'index'? 【发布时间】:2013-06-05 04:35:45 【问题描述】:我关注了a tutorial here,虽然我的整个教程运行良好,但我的 IntelliJ 项目中的一个类被标记为“红色警告”。我无法弄清楚这里的问题是什么?该项目有效,但显示了这些警告?关于这是什么以及如何解决它的任何想法?在教程中,大约 3.5 分钟后,红色标记神奇地消失了,视频演示者也没有解释。
【问题讨论】:
您使用的是什么版本的 IntelliJ?确保您已安装Play 2.0 support
插件。
我使用的是社区版 12.1.3。我听说它有内置的支持。这是真的吗?
我不使用 IntelliJ,但在您问题的屏幕截图中,import views.html.*
显示为灰色,这是否意味着它已被注释掉?
@2manyprojects - 不,这只是一条警告消息。话虽如此,“views”包中的静态“index”和“routes”对象是什么?如果不是,它们在什么包装中?我怀疑我只是错过了一个 IntelliJ 不够聪明无法解决的静态导入?
路由对象位于 controllers.routes。也许这只是漫长的一天,但我不确定我知道索引对象是什么意思......你是指 index.scala.html 文件的编译版本吗?假设它位于项目的views文件夹的根目录中,则位于views.html.index,否则为views.html.这个过程对我有用:
-
进入 [文件 -> 项目结构 -> 模块 -> [YourAppModule] -> 源选项卡]
导航到“target/scala-[version]/src_managed”目录(右侧面板)。
右键单击“主”目录并将其标记为源文件夹。
右键单击“controllers”和“views”并删除“sources”标志(您应该会看到 controllers 和 views 文件夹变成了包目录)。
应用 -> 确定 -> 重新编译。
来自https://github.com/playframework/playframework/issues/1784#issuecomment-26345523
【讨论】:
从 play 2.3 开始,您可以对“target/scala-Play 2.0 support plugin 仅在IntelliJ IDEA Ultimate edition 中可用。
【讨论】:
事实证明这是答案,但我不得不摆弄它一段时间,然后才触发了一些导致它开始工作的东西。谢谢。【参考方案3】:我通过单独清理 IDEA 缓存(文件 -> 使缓存无效/重新启动)设法使其在 IDEA Community 14 上运行
【讨论】:
【参考方案4】:视图/模板不是类,这就是 IDE 无法识别它们的原因。 IDE 应配置为查找视图的编译版本。此点击将解决您的问题
【讨论】:
【参考方案5】:仅当项目首次在浏览器中加载时才会编译路由文件和视图。到那时,IntelliJ 会显示错误,因为它找不到这些类。但是,当您运行应用程序并将其加载到浏览器中时,错误就会神奇地消失。
您可以在播放控制台中验证这一点。在您执行 play run
并在浏览器中加载 url localhost:9000
后,您可以在播放控制台中看到编译消息说
...compiling 22 scala sources....
【讨论】:
我对您的建议尝试了各种变体,但我的 IDE 仍然无法识别“索引”符号。 我不确定,但你能试试play idealize myApp
IDE 似乎通常对 Play 有很大的问题!项目。尝试从项目的命令行运行 clean-all,然后也从那里编译它。最终,您的 IDE 应该会发生什么……直到您下次更改视图文件,然后是 DOOOOM。
你也需要Scala插件,即使你运行Java测试项目
感谢@Jakob。这真的很有帮助.. :)【参考方案6】:
转到您的 Play 项目的运行配置,并从“启动前”部分中删除“制作”步骤。然后,IntelliJ 将简单地运行 Play 项目而不尝试编译,视图将自动编译。
在编译视图之前,IntelliJ 不知道它们的存在,也不能自己制作项目。显然这是 IntelliJ 插件的问题,但由于您已经依赖 Play 进行动态编译,因此这种解决方法不会对工作流程造成太大影响。
【讨论】:
【参考方案7】:-
打开“项目”边栏
转到 target/scala-
请注意,由于奇怪的原因,javascript 路由似乎仍然被忽略,因此这不是一个完美的解决方案。不过,有总比没有好。
【讨论】:
以上是关于播放框架教程:无法解析符号“索引”?的主要内容,如果未能解决你的问题,请参考以下文章
播放框架 sorm intellij - 无法解析符号 sorm
无法使用 intellij 14 解析路由文件中的符号并播放框架 2.4 reactivemongo
Play Framework & IntelliJ - 无法解析符号索引/路由