2013-06-05 41 views
23

我跟着a tutorial here,尽管我整个教程工作得很好,但我的IntelliJ项目中的一个类标有“红色警告”。我无法弄清楚问题在这里?该项目的工作原理,但它显示了这些警告?关于这是什么以及如何解决它的任何想法?在教程中,大约3.5分钟后,红色标记魔术般消失,视频演示者无法解释它。Play框架教程:无法解析符号'索引'?

enter image description here

+0

您使用的IntelliJ版本是什么?确保你已经安装了Play 2.0 support'插件。 – maba

+0

我正在使用社区版本12.1.3。我听说它有内置的支持。真的吗? – djangofan

+0

我不使用IntelliJ,但在您的问题的屏幕截图中,'import views.html。*'灰显,这是不是表示它已被注释掉? – 2manyprojects

回答

3

的路由文件和意见进行编译,只有当项目在浏览器中第一次加载。直到那时,IntelliJ显示错误,因为它无法找到这些类。但是,当您运行应用程序并将其加载到浏览器中时,这些错误会神奇地消失。

您可以在播放控制台中进行验证。你做了play run后,并在浏览器加载网址localhost:9000,你可以看到在游戏控制台编译消息说

...compiling 22 scala sources....

+0

我尝试了各种各样的变体,但是我的IDE仍然无法识别'索引'符号。 – djangofan

+0

我不确定,但你可以尝试'发挥理想化我的应用程序' –

+3

集成开发环境似乎通常与Play有大问题!项目。尝试从项目的命令行运行clean-all,然后从那里进行编译。最终,您的IDE应该会发生什么......直到您下次更改视图文件,然后是DOOOOM。 – Jakob

1

转至运行配置为您的游戏项目,并排除在“启动之前”部分中的“制作”一步。然后,IntelliJ只需运行Play项目而不尝试编译,视图将自动编译。

在编译视图之前,IntelliJ并不知道它们存在,并且不能创建项目本身。很明显,这是IntelliJ插件的一个问题,但由于您已经依赖Play来动态编译,所以这种解决方法不会太多地影响工作流程。

1
  1. 打开 “项目” 栏
  2. 转到目标/ scala- <版>/src_managed
  3. 右键单击src_managed, “马克目录为”/ “生成的源根”
  4. src_managed的子目录来自标记为源根的奇怪原因。你可以禁用它。
  5. 享受。

请注意,javascript路由似乎仍然被一个奇怪的原因忽略,所以这不是一个完美的解决方案。尽管如此,它总比没有好。

32

这个过程为我工作:

  1. 进入[文件 - >项目结构 - >模块 - > [YourAppModule] - > [来源]选项卡]
  2. 导航到“目标/ scala- [版本]/src_managed“目录(右侧的面板)。
  3. 右键单击“main”目录并将其标记为源文件夹。
  4. 右键单击“控制器”和“视图”并删除“sources”标志(您应该看到控制器和视图文件夹成为包目录)。
  5. 应用 - >确定 - >重新编译。

https://github.com/playframework/playframework/issues/1784#issuecomment-26345523

+9

既然玩2.3,你可以做“target/scala- /twirl/main”。只要确保“main”被标记为源文件夹即可。 – devDomm

+0

@devDomm非常棒的人谢谢 – Aphax

7

我设法使它由单纯清洗IDEA缓存上IDEA社区14个工作(文件 - >的Invalidate缓存/重新启动)

+0

这不愧为正确的答案 – Ali

7

查看或模板不是类,这是为什么IDE无法识别它们。它应该被配置为查找这些视图的编译版本。此点击将解决您的问题

enter image description here