默认禁用 play framework 2.x 的 SBT 编译

Posted

技术标签:

【中文标题】默认禁用 play framework 2.x 的 SBT 编译【英文标题】:SBT compilation for play framework 2.x disabled by default 【发布时间】:2016-01-17 03:38:57 【问题描述】:

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

然后我将项目作为 SBT 项目导入到我的 IDE IntelliJ 中。导入项目时,会显示一个弹出窗口: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

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

我四处搜索,找不到任何与此相关的提示,所以我有点迷路了。

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

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

选择导入项目并执行正常的“导入项目步骤”,IntelliJ 轻松导入项目。 但是如果我尝试在 IntelliJ 上打开项目时导入项目,我会遇到同样的问题,导致我提出这个问题。也许这是 IntelliJ 上的错误?

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

这两个问题的解决方案(“SBT 编译为 play framework 2.x 默认禁用”和 IntelliJ 上不显示的文件)可以用user3384225DarkShadow 修复答案。

【问题讨论】:

是的,我收到了同样的信息,但仍然不知道为什么? 我仍然每次都能得到它。我唯一的解决方法是我对我的问题的编辑。到目前为止,我还没有找到为什么会这样。 这是我在 IDE 中遇到的最令人沮丧的错误,最糟糕的部分是 IntelliJ 在尝试修复此问题时中断的方式 【参考方案1】:

首选项 > 语言和框架 > Play2

在“编译器”下启用“为此项目使用 Play 2 编译器”

【讨论】:

这使警告消失了,但 IntelliJ 仍然没有显示所有文件。 Build - Make Project OR Build - Rebuild Project 对文件问题不做任何事情。 谢谢,这个人把我赶出去了! 为什么默认不启用? @RichardTopchiy 此设置可能会导致与命令行编译器连接的增量编译出现问题。通常你不需要,因为运行 Play2 项目会在重新加载时编译。 启用该选项有什么好处?【参考方案2】:

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

导航到:

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

在编译器选项卡内:

为此项目使用 Play2 编译器

添加一个勾选

希望这会有所帮助。

【讨论】:

对我来说是File --> Other Settings --> Preferences For New Projects --> Languages and Frameworks --> Play2 --> Compiler tab 这是在运行 IntelliJ 2019.1.2 的 Mac 上【参考方案3】:

此处发布了与 user3384225 的答案类似的答案:

https://devnet.jetbrains.com/message/5560914

他们说:

设置 -> 语言和框架 -> Play2 -> 编译器 -> 此项目的用户 Play 2 编译器

【讨论】:

这使警告消失了,但 IntelliJ 仍然没有显示所有文件。 Build - Make Project OR Build - Rebuild Project 对文件问题不做任何事情。 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效【参考方案4】:

我也是一个新手,直到昨天都面临同样的问题。可能您正试图通过 File->open 打开项目。

尝试以下步骤:-

File->New->Project from existing source->从您使用激活器创建的项目中选择build.sbt->从外部模型导入项目并从选项中选择SBT->确定。

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

【讨论】:

这确实有效。它也与我在第一次编辑我的问题时描述的略有相同。【参考方案5】:

对于当前项目,您可以使用 File->Invalidate Caches/Restart.. 解决此问题

【讨论】:

【参考方案6】:

很可能你已经解决了你的问题,但只是为了帮助别人 你只需要做的是 -> 选中 Preferences -> Languages & Frameworks -> Play2 -> Compiler 下给出的选项“为此项目使用 Play 2 编译器”

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

今天偶然发现了同样的问题。通过擦除~/.IntelliJIdea14 目录解决。不幸的是,我尝试过的任何其他事情都没有帮助。

【讨论】:

它对我不起作用。仍然无法使用实际编码加载任何文件。另外,擦拭~/.IntelliJIdea14 应该小心。您将丢失所有配置,所以请备份它!【参考方案9】:

只需使用:File->New->Project from existing source->从您使用激活器创建的项目中选择 build.sbt->ok。 就完成了。

【讨论】:

以上是关于默认禁用 play framework 2.x 的 SBT 编译的主要内容,如果未能解决你的问题,请参考以下文章

在 Java Play Framework 2.2.x 中启用 CORS

如何在 Play 2.2.x 的 dist 任务中禁用 ScalaDoc 生成(使用 project/build.scala)?

在play framework 1.2.x, class JPABase分析中,为啥要调用saveAndCascade()?

在 Play Framework 1.2.x 中,如何在路径表达式中使用渲染参数值?

将 JVM Opts 从 build.sbt 传递到 Play Framework 2.2.x 中的启动脚本

Play Framework - 使用默认查询参数的路由(如果不存在)