1

问题:

当我在 IntelliJ IDEA 12 中使用 Scala Play 2.0.4 应用程序时,我收到很多红色语法高亮错误,当我在 Play 中运行应用程序时,这些错误不会显示为错误!在命令行。

问题:

是否还有其他人在 IntelliJ IDEA 12 中成功运行 Scala Play 2.0 应用程序?如果是这样,你能否给我一些关于我如何做到这一点的建议。

背景资料:

当我在 IntelliJ 中创建一个新项目时,我将 Play 2 主页设置为 ~/bin/opt/play-2.0.4,它会创建该项目,然后出现一个名为“Project Files Changed”的对话框,上面写着“Project file . ../.idea/misc.xml 已外部更改。建议重新加载项目以使更改生效。" 如果我忽略重新加载项目的提示,并且我在 app/ 上 ctl-ins,我会得到以下选项:

  1. Java 类
  2. 斯卡拉类
  3. 文件
  4. 包裹

然后我创建一个包'models'和一个scala文件'Models.scala',代码如下所示,'Hello'在语法上突出显示为红色,当我将鼠标悬停在代码上时,IDEA指示它找不到'你好'在对象 MyDB 中:

package models

case class Hello(id: Int, name: String)

object MyDB {
  val hellos: List[Hello] = List(Hello(1, "Foo"), Hello(2, "Bar"))
}

我现在可以使用上面的代码创建 create app/models/Models.scala 并且没有突出显示错误。但是,当我转到项目设置-> 模块-> 依赖项时,它说'sbt-and-plugins' 路径损坏并且“模块'无标题':依赖项列表中的无效项目'scala-2.9.1'”

另一方面,如果我单击“确定”以重新加载项目以使更改生效,那么如果在 app/ 上使用 II ctl-ins,我将获得以下选项:

  1. 文件
  2. 目录

如果我在命令行(以及 with-sources)中从 play 中生成想法,并且如果我编译项目(在我运行想法之前或之后),也会出现第二个选项。

作为进一步的提示,如果我不重新加载项目,应用程序目录将显示为蓝色,但是一旦我重新加载它,应用程序目录图标就会变成褐色(就像其他人一样)。

无论是使用自己下载的play-2.0.4,还是新建项目时让IntelliJ下载,都是一样的。无论我有 Play 2.0 Support 的 playframework 还是只有 Play 2.0 Support 本身,都是一样的。

有关更多信息,我正在运行 Arch Linux、Oracle Java 1.7.0_09、scala-2.9.1.final、Play 2.0.4、IntelliJ 12.0 IU-123.72。插件:Scala (0.6.371)、Play 2.0 Support (0.1.86)、Playframework Support(无论有没有这个,我都会遇到同样的错误)。

更新:

下面是stacktrace http://pastebin.com/uWEpv5Gd,显示IDEA在创建项目时抛出了异常,如下:

[  87553]  ERROR - com.intellij.ide.IdeEventQueue - Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.intellij.openapi.progress.util.ProgressWindow$MyDialog$1@3b5a26d6,notifier=null,catchExceptions=false,when=1355073846201] on sun.awt.X11.XToolkit@1bd172ba
4

2 回答 2

1

我通常通过以下方式让 Play 项目在 IntelliJ 12 中运行:

  1. 使用 play new "projectname" 从终端创建项目
  2. 进入新文件夹“projectname”
  3. 运行游戏理念
  4. 使用 IntelliJ 打开该文件夹并启用语法突出显示

希望这可以帮助

于 2012-12-10T10:47:34.393 回答
1

问题不在于 JVM,而在于 Play 2.0 插件。我在 1.7 和 1.6 中使用各种 JVM 对其进行了测试,但仍然遇到同样的问题。我通过删除配置目录尝试全新安装 Intellij IDEA 12,它也在做同样的事情。当我使用 IDEA 12 创建一个新项目时,目标的目录结构如下所示:

[ambantis@okosmos target]$ tree
.
├── scala-2.9.1
│   └── cache
│       └── update
│           ├── inputs
│           └── output
└── streams
    └── $global
        ├── ivy-configuration
        │   └── $global
        │       └── out
        ├── ivy-sbt
        │   └── $global
        │       └── out
        ├── project-descriptors
        │   └── $global
        │       └── out
        └── update
            └── $global
                └── out

13 directories, 6 files

缺少的是/target/scala-2.9.1/classes 和/target/scala-2.9.1/classes_managed。解决方法如下:

在构建过程之后,如果您看到一个显示“项目文件已更改”的对话框,如下所示: 在此处输入图像描述

不要单击确定,而是转义。然后打开播放控制台并编译应用程序。此时它将起作用。您只会看到存在未使用的 jar 文件的错误,否则一切都会正常工作。

于 2012-12-17T18:35:46.670 回答