播放框架2.x的SBT编译默认情况下禁用

daz*_*ito 61 intellij-idea sbt playframework

我使用激活器创建了一个新的Play Framework项目,activator new my-project-name然后我选择了play-java模板并创建了没有错误的项目.

然后我将项目导入我的IDE,IntelliJ,作为SBT项目.导入项目时会显示一个弹出窗口:SBT compilation for play framework 2.x disabled by default.

在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
Run Code Online (Sandbox Code Playgroud)

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

我google了一下,找不到与此有关的任何提示,所以我有点迷失在这里.

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

我在IntelliJ上关闭了项目并删除了项目文件夹.关闭IntelliJ并使用activator我再次创建相同的项目.使用activator ui我编译的项目.然后我启动了IntelliJ并被提示打开项目,创建新项目或导入项目.

选择导入项目并执行正常的"导入项目步骤",IntelliJ导入项目没有麻烦.但是,如果我尝试在IntelliJ上打开一个项目时导入项目,我会遇到同样的问题,导致我提出这个问题.也许这是IntelliJ上的一个错误?

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

这两个问题的解决方案(" 默认情况下禁用播放框架2.x的SBT编译 "和IntelliJ上未显示的文件)可以修复user3384225DarkShadow回答.

tgk*_*tgk 69

首选项>语言和框架> Play2

在'Compiler'下启用'Use Play 2 compiler for this project'

在此输入图像描述

  • 启用该选项有什么好处? (10认同)
  • @RichardTopchiy此设置可能会导致与命令行编译器相关的增量编译出现问题.通常你不需要运行Play2项目就会在重载时编译. (4认同)
  • 为什么默认情况下不启用此功能? (2认同)

Sul*_*_28 11

我在为IntelliJ IDEA IDE(版本:2017.3)配置播放框架时偶然发现了这个问题.我按照以下步骤克服了这个问题.

导航:

File --> Settings --> Languages and Frameworks --> Play2 --> Compiler tab
Run Code Online (Sandbox Code Playgroud)

在编译器选项卡内:

使用Play2编译器为这个项目

在此输入图像描述

希望这有帮助.


小智 5

user3384225的回答类似的答案在这里发布:

他们说:

  • 设置 - > Langauges&Frameworks - > Play2 - > Compiler - >此项目的User Play 2编译器