【问题标题】:Play Framework 2.4 and IntelliJ IdeaPlay Framework 2.4 和 IntelliJ Idea
【发布时间】:2015-08-16 19:39:58
【问题描述】:

我正在尝试在 IntelliJ 中打开一个 play 2.4 项目,但由于事情发生了变化,我不知道该怎么做。

在以前的版本中我可以运行

activator idea

或者使用activator UI,点击generate intelliJ project,但是在2.4中idea命令好像不存在

[error] Not a valid command: idea (similar: eval, alias)
[error] Not a valid project ID: idea
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: idea (similar: clean)
[error] idea
[error]     ^

用户界面似乎坏了,当我点击生成 intelliJ 项目时,它会尝试编译应用程序并给出以下错误:

play/Play$
java.lang.NoClassDefFoundError: play/Play$
Use 'last' for the full log.
Failed to load project.

我使用 play java 模板从头开始创建项目:

activator new

我也尝试将文件夹作为项目导入,但 intelliJ 似乎没有将其识别为项目

【问题讨论】:

  • 虽然我可能会厚颜无耻地将其复制为答案,但您可以这样做:stackoverflow.com/a/30240964/794967。我试过了,它有效。用activator创建一个项目,删除这个文件,用Idea打开。
  • 确保您使用的是 JDK 8(Intellij IDEA,JAVA_HOME 系统变量)
  • 我遇到了一个类似的问题,即 IntelliJ 看不到 CE 版本上的所有测试类。
  • 我遇到了同样的问题,我通过删除 .idea 文件夹并重新导入项目来修复。

标签: intellij-idea playframework playframework-2.4 typesafe-activator


【解决方案1】:

Intellij IDEA 让您无需使用命令提示符即可快速创建 Play 应用程序。您无需在 IDE 之外进行任何配置,SBT 构建工具负责下载适当的库、解决依赖关系和构建项目。

开始在 IntelliJ IDEA 中创建 Play 应用程序之前,请确保已在 IntelliJ IDEA 中安装并启用了最新的 Scala 插件。即使您不使用 Scala 进行开发,它也将有助于模板引擎并解决依赖关系。

基本上,安装 Play Framework、Scala 插件并将项目作为 SBT 项目导入 Intellij。不要使用激活器来创建 IDEA 项目文件。 More details here.

【讨论】:

  • 只有拥有IDEA Ultimate才能使用该插件。
  • 是的,但从是否是终极版的问题上不清楚。
  • 如果你想使用java种子创建它不起作用
【解决方案2】:

看来我还没有将 scala/sbt 更新到 intelliJ 中的最新版本 完成此操作后,它注意到这是一个有效的项目,尽管文档似乎没有提到您可以将其作为 SBT 项目导入,只是如何将其创建为新的 sbt 项目(我不想这样做因为我想通过激活器创建它)

我也遇到了 project/play-fork-run.sbt 文件问题

【讨论】:

  • 无需导入它(如果您正在考虑新建 > 从现有来源)。用激活器生成后就可以直接打开了。
【解决方案3】:

我遇到了同样的问题,因为我使用 IDEA 打开一个项目文件夹,它的子文件夹中有一个 play 2 应用程序,然后我将模块(play 2 应用程序)导入系统。

而且效果很好。

之后我更改了模块文件夹名称,然后当我运行应用程序时,它显示:

Not a valid project ID: "project team"

我重新查看了文件夹,发现在File -> Project Structure选项中,module的名字是“root”,“team”是整个工程的module(不是SBT导入的module) ,很明显,在我更改模块文件夹名称后,该模块无法正常工作。

所以我找到并删除了所有.idea文件夹,这是IDEA配置,然后重新打开/重新导入模块,仍然不行。我认为这是 IDEA 缓存问题,它确实对打开的项目有缓存,所以我将项目文件夹从 team 更改为其他内容,清理 .idea 文件夹,然后重新打开/重新导入它。它奏效了。

如果play app在项目文件夹中作为子文件夹,在File -> Project Structure中导入模块。

在 IDEA 中运行时,项目名称应为“root”。所以在这种情况下,您应该在名称字段中将“项目团队”重命名为“root”。

【讨论】:

  • ROOT - 这是我问题的根源!非常感谢:)
  • 谢谢!将模块重命名为“root”后,一切正常。
  • 谢谢!这显然是一个错误。我提交票后找到了你的答案youtrack.jetbrains.com/issue/SCL-13988
【解决方案4】:

我使用 Intellij Idea 16.3.3,有时会出现这个问题。我是怎么修的?您只需要打开您的 SBT 插件并在您的项目下获取上下文菜单,然后您应该选择“忽略 SBT 项目”。当前进程完成后,您应该再次打开此选项。这对我有用:)

【讨论】:

  • 您应该添加更多关于您的建议的明确信息。什么是“打开您的 SBT 插件”,我找不到您描述的任何步骤。
【解决方案5】:

解决方案 1

在我的情况下(IDEA 2018.2),我更改了 build.sbt 中的 lazy val 变量,当我的项目名称为“top”时,它的名称为“root”,将“root”更改为“顶”。

之前:

lazy val root = (project in file(".")).enablePlugins(PlayScala)

之后:

lazy val top = (project in file(".")).enablePlugins(PlayScala)

Change project variable

解决方案 2

by Tom提出的方法部分解决了我的问题,因为重启IDEA后我返回了项目名称,需要在build.sbt中将变量从“top”更改为“root”。

之前:

name: = "top" 

之后:

name := "root"

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2016-07-02
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2014-11-17
    相关资源
    最近更新 更多