默认禁用 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 上不显示的文件)可以用user3384225
和DarkShadow
修复答案。
【问题讨论】:
是的,我收到了同样的信息,但仍然不知道为什么? 我仍然每次都能得到它。我唯一的解决方法是我对我的问题的编辑。到目前为止,我还没有找到为什么会这样。 这是我在 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 中,如何在路径表达式中使用渲染参数值?