Play框架2.x默认禁用SBT编译

68

我使用activator创建了一个新的Play Framework项目:activator new my-project-name,然后选择了play-java模板,项目没有出现错误。

接下来,我将项目作为SBT项目导入到我的IDE IntelliJ中。当导入项目时,弹出窗口显示:默认情况下禁用Play Framework 2.x的SBT编译

在IntelliJ项目面板上,它并没有显示所有(大部分都是代码文件)的文件,只有其中一小部分。

图片描述

build.sbt文件看起来充满了编译错误(几乎所有行都是红色下划线)。

这里是build.sbt文件:

name := """my-project-name"""

version := "1.0-SNAPSHOT"

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

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaWs
)

// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator


fork in run := true

我可以使用activator ui编译和运行代码,没有出现错误。那么,为什么IntelliJ没有完全导入项目,并显示"SBT compilation for play framework 2.x disabled by default"的消息?

我在谷歌上搜索了一下,并没有找到相关的提示,所以我有点迷茫。

编辑:-------------------------------------

我关闭了IntelliJ上的项目并删除了该项目文件夹。关闭IntelliJ并使用activator创建了同样的项目。我使用activator ui编译了项目。然后启动了IntelliJ,提示我打开一个项目、创建新项目或导入项目。

选择导入一个项目并完成常规的“导入项目步骤”,IntelliJ无忧地导入了项目。 但是如果我尝试在IntelliJ上的一个打开项目中导入该项目,则会遇到与此问题相关的相同问题。也许这是IntelliJ上的一个bug?

编辑2:------------------------------------------

user3384225DarkShadow的回答解决了这两个问题("SBT compilation for play framework 2.x disabled by default"和IntelliJ上未显示的文件)。


1
是的,我收到了同样的消息,但仍然不确定为什么? - ttt
每次我仍然会遇到这个问题。我唯一的解决方法是在我的问题编辑中提到的那个。到目前为止,我还没有找到为什么会发生这种情况。 - dazito
1
这是我在一个IDE中遇到的最令人沮丧的错误,最糟糕的部分是IntelliJ在尝试修复它时出现崩溃。 - Aj Otto
9个回答

72

首选项 > 语言和框架 > Play2

在'编译器'下启用'为该项目使用Play 2编译器'

在此输入图片描述


1
这使得警告消失了,但是IntelliJ仍然没有显示所有文件。Build - Make Project 或 Build - Rebuild Project 对于文件问题毫无作用。 - dazito
2
为什么这不是默认启用的? - Richard Topchii
4
这个设置可能会导致增量编译与命令行编译器连接时出现问题。通常情况下,你不需要考虑这个问题,因为在重新加载时运行Play2项目会自动编译。 - Gaurav Kumar
14
启用该选项有什么好处? - Aphax
@Aphax 我个人认为这个选项没有任何好处,只有问题。普通的 SBT 编译器已经足够好,可以完成所有的工作,而启用这个选项会导致一些事情无法正常工作,比如之前提到的测试问题。 - undefined
显示剩余3条评论

12

我在配置 IntelliJ IDEA IDE(版本:2017.3)的 Play 框架时遇到了这个问题。我通过以下步骤解决了这个问题。

导航至:

File --> Settings --> Languages and Frameworks --> Play2 --> Compiler tab

在编译器选项卡内:

勾选 Use Play2 compiler for this project

enter image description here

希望这可以帮到您。


对我来说,这是在运行2019.1.2版IntelliJ的Mac上的“文件-->其他设置-->新项目首选项-->语言和框架-->Play2-->编译器”选项卡。 - Flexicoder

5

这使警告消失了,但是IntelliJ仍然没有显示所有文件。 Build-Make Project或Build-Rebuild Project对于文件问题没有任何作用。 - dazito
1
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅有链接的答案可能会失效。 - Roman Marusyk

2

我也是一个新手,昨天还遇到了同样的问题。也许您正在尝试通过文件->打开来打开项目。

请按照以下步骤操作:

文件->新建->从现有源创建项目->选择使用activator创建的项目中的build.sbt文件->从外部模型导入项目,并选择SBT选项->确定。

导入文件和创建所需的Intellij Idea项目设置需要一些时间。我正在使用Intellij Idea 14.1.5。它对我有效,希望对您也有效。


这个确实有效。它也与我在第一次编辑问题时所描述的略有相似。 - dazito

2

很可能你已经解决了你的问题,但是为了帮助其他人,你只需要做的就是:在“首选项”->“语言与框架” ->“Play2” -> “编译器”下勾选“使用Play 2编译器来处理此项目”选项。


2

对于当前的项目,你可以通过使用文件->无效缓存/重启来解决此问题。


1
关闭项目,然后将项目导入为sbt项目。 Intellij将自动转储和索引项目依赖项。

0
今天遇到了同样的问题。通过清除~/.IntelliJIdea14目录解决了。不幸的是,我尝试过的其他方法都没有帮助。

1
对我来说没有用。仍然无法使用实际编码加载任何文件。此外,清除 ~/.IntelliJIdea14 应该小心进行。您将失去所有配置和其他内容,因此请备份! - dazito

0
只需使用:文件->新建->从现有源代码创建项目->选择使用activator创建的项目中的build.sbt->确定,就完成了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接