为什么 Intellij 在尝试 运行 DevMode 时会删除过时的文件?

Why Intellij deletes obsolete files when trying to run DevMode?

我目前在公司从事 GWT 项目。虽然 DevMode 在 eclipse 中完美运行,但我还是想使用 Intellij Ultimate Edition 进行开发。

但是在完成所有设置后(Facet,Run/Debug 配置)我得到这个奇怪的处理 window 说 "Deleting Obsolete Files..." 当我 运行 程序和之后我在 war 目录中的所有预部署资源文件都消失了(递归...)。

顺便说一句,我使用脚本来部署我所有的东西。我为 DevMode 设置的唯一参数是:

-war /absolute/path/before/war/folder/war

有谁知道 Intellij 删除我的文件的原因?

我从 Eclipse 切换到 IntelliJ,在 IntelliJ 中调试 GWT 时从未遇到过问题。这很可能与部署相关。

首先,我在客户端使用 Tomcat,就像我在生产中使用它一样。没有内置码头。在开发模式参数中指定 -noserver。并确保启动你的服务器(在调试模式下,因为你也可能调试它)。

除此之外,您可能正在执行导致它的自定义 build/deployment。我做每件事都是按部就班的。 IntelliJ 是以 Maven 为中心的,所以它需要是教科书式的 Web App 模块。与 Eclipse 不同,您不需要指定 war 目录所在的位置。根据 Maven 约定,它是 "webapp"。我建议从头开始重新创建模块。

向 Intellij 支持团队发送请求后,他们给了我以下答复:

将以下两行添加到 IDEA_HOME/bin/idea.properties 文件中:

idea.gwt.clear.unit.cache.before.run=false

idea.gwt.clean.files.created.by.dev.mode=false

这是有道理的,因为我唯一需要做的就是防止 Intellij 删除我的本地缓存文件。问题已解决。