我正试图在IntelliJ中打开一个play 2.4项目,但由于情况发生了变化,我不知道该怎么做。
在以前的版本中,我可以运行
activator idea
或者使用激活器UI并单击生成intelliJ项目,但在2.4中,想法命令似乎不存在
[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] ^
当我点击generate intelliJ project时,它试图编译应用程序,并给出以下错误:
play/Play$
java.lang.NoClassDefFoundError: play/Play$
Use 'last' for the full log.
Failed to load project.
我使用play java模板从头开始创建项目:
activator new
我还尝试将文件夹作为项目导入,但intelliJ似乎没有将其标识为项目
Intellij IDEA允许您快速创建播放应用程序,而无需使用命令提示符。您不需要在IDE之外配置任何东西,SBT构建工具负责下载适当的库、解析依赖项和构建项目。
在IntelliJ IDEA中开始创建播放应用程序之前,请确保在IntelliJ IDEA中安装并启用了最新的Scala插件。即使您不使用Scala开发,它也将有助于模板引擎和解决依赖关系。
基本上,安装Play框架、Scala插件,并将项目作为SBT项目导入Intellij。不要使用activator创建IDEA项目文件。这里有更多细节。
解决方案1
在我的例子(IDEA 2018.2)中,我更改了build中的lazy val变量。sbt,当我的项目名为“top”时,它的名字是“root”,将“root”改为“top”。
之前:
lazy val root = (project in file(".")).enablePlugins(PlayScala)
之后:
lazy val top = (project in file(".")).enablePlugins(PlayScala)
更改项目变量
解决方案2
Tom提出的方法部分解决了我的问题,因为在重新启动IDEA后,我返回了项目名称,有必要在build.sbt.中将变量从“top”更改为“root”
之前:
name: = "top"
之后:
name := "root"
我遇到了同样的问题,当我使用IDEA打开一个项目文件夹时,它在一个子文件夹中有一个play 2应用程序,然后我将模块(play 2应用程序)导入系统。
而且效果很好。
之后我更改了模块文件夹名称,然后当我运行应用程序时,它显示:
Not a valid project ID: "project team"
我重新检查了文件夹,发现文件中-
所以我找到并移除了所有。idea文件夹,即idea配置,然后重新打开/重新导入模块,仍然无法工作。我认为这是IDEA缓存问题,它确实为打开的项目提供了缓存,所以我将项目文件夹从team
更改为其他内容,清理该文件夹。想法文件夹,然后重新打开/重新导入。成功了。
如果play app作为子文件夹位于项目文件夹中,请在文件中导入模块-
问题内容: 关于它们有很多传说。我想知道真相。以下两个示例之间有什么区别? 问题答案: 不确定从何处获得传说,但: 提交按钮 与: IE6将在标记之间提交此按钮的所有文本,其他浏览器将仅提交值。使用可使您在按钮的设计上享有更大的布局自由度。从各种意图和目的看,它乍一看似乎很棒,但是各种浏览器怪癖使它有时很难使用。 在您的示例中,IE6将发送到服务器,而其他大多数浏览器将不发送任何内容。要使其跨浏览
什么区别以及如何正确重写代码?
我试图理解为什么下面两个代码块会产生不同的结果。 代码块1按预期工作,并返回从数据库中查找的提供程序的数组。另一方面,代码块2返回函数数组。在理解promissione.all()和async/await时,我觉得缺少了一些简单的东西。 代码块的差异如下: > 块1:创建许诺函数数组,然后使用map运算符将其包装在异步函数中。 块2:许诺函数的数组被创建为异步函数。因此,不调用map运算符。 如果
问题内容: 我才刚刚开始研究SQL。 我有一个SQL Server 2008r2数据库,它将返回两个字段DocDate和InvValue。我需要将InvValues汇总为今天的MTD和YTD,所以看起来像 我已经做了大量的Google搜寻,并且可以使用SUM&DATEPART进行一项或多项,但是我坚持尝试两者兼而有之。 有人可以给我一些伪代码,以帮助我进一步谷歌。 谢谢@戈登·利诺夫(Gordon
这个示例代码来自一本Java书籍,从墙上的99瓶啤酒到没有啤酒打印出这首歌。问题是,当墙上是1瓶啤酒时,它仍然写着瓶子。我试图通过在末尾添加部分来解决这个问题。但是,它仍然显示1瓶啤酒在墙上,我瓶啤酒在墙上。 我不知道该改变什么来解决这个问题。是否创建另一个while部分? 如果你能给他们一个提示,这样我就可以自己解决它,那也很酷!因为我知道我的实际歌曲输出是在第一个if部分,但我不知道我应该在哪
原文地址:https://cesiumjs.org/tutorials/cesium-and-webpack/ Cesium 和 Webpack Webpack是非常强大非常流行的JavaScript 模块打包工具。它可以让开发人员以一种简单直观的 require 方式去加载各种页面需要的文件,极大的方便了开源人员对代码和资源文件进行结构化设计。当编译的时候,它会跟踪代码依赖性,把所有的模型打包到
问题内容: 我一直在学习redis和node.js。我有两个问题,找不到令人满意的答案。 我的第一个问题是关于在node.js中重用Redis客户端。我找到了这个问题和答案:如何在socket.io中重用Redis连接,但还不足以让我满意。 现在,如果我在连接事件中创建redis客户端,它将为每个连接生成。因此,如果我有2万个并发用户,那么将有2万个Redis客户端。 如果我将其放在连接事件之外,
我需要控制日志框架的最大磁盘空间量。 例如,在log4j中,如果有如下所示的追加器,我可以很容易地估计需要多少磁盘空间: 对于maxFileSize和maxBackupIndex,我知道最多需要10x100KB。 我注意到DailyRollingFileAppender,但它不支持maxFileSize。 除了RollingFileAppender之外,是否还有其他fileappender可以实现