Play Framework 2.4和IntelliJ Idea

时间:2015-06-02 20:19:14

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

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

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

activator idea

或者使用激活器UI并单击生成intelliJ项目,但在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]     ^

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

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

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

activator new

我也尝试将该文件夹作为项目导入,但是intelliJ似乎并未将其标识为项目

5 个答案:

答案 0 :(得分:18)

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

效果很好。

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

Not a valid project ID: "project team"

我重新检查了该文件夹,发现在文件中 - >项目结构选项,模块的名称是" root"和" team"是整个项目的模块(不是SBT导入的模块),显然,在我更改了模块文件夹名称后,该模块不起作用。

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

如果播放应用程序在项目文件夹中作为子文件夹,则在File - >导入模块。项目结构。

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

enter image description here

enter image description here

答案 1 :(得分:6)

解决方案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"

答案 2 :(得分:2)

  

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

     

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

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

答案 3 :(得分:2)

似乎我没有将scala / sbt更新为intelliJ中的最新版本 一旦我这样做了它就注意到它是一个有效的项目,虽然文档似乎没有提到你可以将它作为一个SBT项目导入,只是如何创建它作为一个新的sbt项目(我不想做因为我想通过激活器来创建它)

我还有project / play-fork-run.sbt文件问题

答案 4 :(得分:0)

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