IntelliJ IDE | .iml 文件丢失或删除
Posted
技术标签:
【中文标题】IntelliJ IDE | .iml 文件丢失或删除【英文标题】:IntelliJ IDE | .iml File lost or deleted 【发布时间】:2016-08-01 05:41:17 【问题描述】:上周我正在使用 IntelliJ IDE 开发一个 Java EE 项目。
今天:当我启动 IntelliJ 2016.1 时,它给了我错误:
加载项目时出错
无法加载模块 FirstWebApp
当我查看详细信息时,它说找不到我的 FirstWebApp.iml 文件,因此无法加载我的项目。
我在资源管理器中检查了我的项目结构,除了 iml 文件之外的所有内容都在那里。我还查看了回收站,但我也找不到它。
这样的文件怎么会消失?
如果可能的话,我怎样才能找回我的 iml 文件?
这些 iml 文件有什么作用?
我是 Java 世界的新手。如果需要更多信息,请发表评论! :)
【问题讨论】:
与原始问题无关,但是,我只想补充:如果您使用git
,请配置gitignore
,这样这些文件将不会被推送
【参考方案1】:
*.iml 文件与您的代码/Java 无关。它是 Intellij 在项目根文件夹中创建的隐藏文件,其中包含您的模块信息。这就是您不应该对此类文件进行版本控制的原因,毕竟使用不同 IDE 的其他开发人员不需要它们。
如果您关闭了 Intellij,我认为没有办法恢复相同的文件,但另一方面,重新生成新的 .iml 文件非常简单:
基于 Gradle 的项目
点击工具栏中的Sync Project with Gradle Files
按钮(这个);
基于 Maven 的项目
转到文件>项目结构>模块>添加>导入模块>(选择您的模块基目录)>确定
编辑:
我之前的回答是基于 IntelliJ 14 的,似乎在较新的版本上发生了一些变化,正如 cmets 上的 hBrent 和 BeC 所指出的那样。
使用 Intellij Community 2018.1 进行此更新:
基于 Maven 的项目
过程保持不变,我看到的唯一区别是 Add 图标不再是绿色了。也可以尝试删除rootFolder/.idea/modules.xml
并在之后添加模块以重置有关先前配置的所有信息。
基于 Gradle 的项目
应在 Gradle 工具窗口(视图 > 工具窗口 > Gradle)上使用“刷新所有 Gradle 项目”,由标准刷新图标表示。
【讨论】:
我觉得那个按钮现在看起来有点不同了。我在 gradle 窗口中点击了“刷新所有 gradle 项目”和“执行 gradle 任务”。不确定是哪一个生成了 iml 文件,但之后我就没事了。 现在的设置不同了。我仍然看不到如何在 maven 项目中重新生成 impl 文件。 @BeC 我刚刚下载了 Intellij 的最新 CE 版本,对于 Maven 项目,相同的过程仍然重新生成了 *.iml 文件。 + 按钮不再是绿色的,但是在单击它并从现有源导入模块后它就可以工作了。也许您可以尝试删除 .idea/modules.xml 文件,然后再将模块添加回 Intellij 以重新生成所有内容。请让我知道它是否有效。 没有sync project
按钮
@PrateekGupta Pycharm 到底发生了什么?我觉得gradle问题不适用于python【参考方案2】:
删除 .iml 文件后,我的 mvn 项目也没有在 IntelliJ IDEA 中正确加载。我是这样解决的:
-
封闭的 IntelliJ IDEA
删除了我的项目目录中的 .idea 目录。
我重新打开了 IntelliJ IDEA 和 .idea 目录,不久之后 IntelliJ 自动重新创建了 .iml。
为我修复。
【讨论】:
你拯救了我的一天! 谢谢!在我不得不做的事情之后:文件->使缓存无效/重新启动 上帝保佑你@tuiz! 这也解决了我的问题! 其他方法假定为 maven 或 gradle。我使用的 IntelliJ 没有任何一个,这对我有用。事实上,当我使用“项目设置”向导重命名项目时,它并没有更新 .iml,这样做让我得到了一个具有正确名称的新 .iml 文件。【参考方案3】:对于 Maven 项目:
打开 Maven 工具窗口(对于 intellij 用户 - 右键单击项目名称并向下滚动到底部以找到 maven 工具窗口)(用此图标表示:) 点击Reimport All Maven Projects按钮(用这个表示 图标:)。说明: https://www.jetbrains.com/help/idea/maven-projects-tool-window.html
【讨论】:
这是唯一让我的多层 Maven 项目被导入为 Maven 项目/模块的指令。谢谢。【参考方案4】:如果删除*.iml
文件和.idea
文件夹并关闭IntelliJ
,下次再次打开项目时会重新生成。
【讨论】:
【参考方案5】:我还意外删除了 .iml 文件。 解决方法如下:
-
封闭的 IntelliJ IDEA
重新打开程序
选定的导入项目 -> 从现有来源创建项目
单击下一步。
它为我创建了正确的项目配置。
【讨论】:
【参考方案6】:如果您无法通过最受欢迎的方式恢复它,您可以简单地复制另一个 .iml 文件,将其粘贴到需要 .iml 文件的包*中,然后将 .iml 文件重命名为包的名称.如果它是相同的类型(在我的情况下为 UTF-8),这应该可以工作。
*通过进入包文件复制 .iml 文件,右键单击包名称,然后按粘贴。
您可以在左侧任务栏中完成此操作。我准备好了a video demonstration(没有音频)。
【讨论】:
【参考方案7】:-
删除项目中的 .idea 文件夹
重新导入项目
它将再次为配置编译和构建 .idea 文件夹。
【讨论】:
最简单的解决方案。当您的项目既不是基于 gradle 也不是基于 maven 时,这非常有效。谢谢! 执行此操作时,您将丢失窗口设置、运行配置和其他内容。因此,请跟踪该信息,以便您可以重建它。【参考方案8】:Gradle 刷新在我的情况下不起作用。几个项目文件夹也丢失了,所以我也无法复制/粘贴新的 .iml 文件。
但是,当我重新打开项目时,选择 Delete Existing Project and Import
,项目能够重新创建所有 .iml 文件。
【讨论】:
有Delete Existing Project
?
是的,但它不会删除您的项目。它将在 IntelliJ 中正确关闭您的项目,然后从头开始重新打开它。通常你不想这样做,因为以这种方式重新打开项目需要更长的时间。但是当事情不起作用时 - 它可能会对您有所帮助。
值得一提的是,这样做也会清除您的运行/调试配置。所以你必须重新创建这些。【参考方案9】:
使用项目名称创建一个新文件并将其粘贴。如果您正在使用颤振。
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/lib" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/.idea" />
<excludeFolder url="file://$MODULE_DIR$/.pub" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Flutter Plugins" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>
【讨论】:
project name
是什么意思?
@IgorGanapolsky 尝试项目文件夹名称:因此 path/to/projects/my-project 意味着该文件夹中的 .iml 文件应称为 my -project.iml。这至少是我导入项目时 androidStudio 自动创建的内容【参考方案10】:
我正在使用 phpstorm 和具有多个 repos 的项目。
我的情况是,由于未指定的原因,我删除了“主”项目目录(并再次克隆)。这导致下一个项目目录成为 main ,我猜。还有旧的“main”将从 phpstorm 的项目视图中删除。
尝试打开新克隆的项目并附加后,它失败了。附加的新克隆项目中的新 .iml 文件很好(尽管它报告失败),所以我进入下一个项目的 .idea 目录,发现 .iml 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="module" module-name="Project1" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="Project3" />
<orderEntry type="module" module-name="Project4" />
<orderEntry type="module" module-name="Project1" />
</component>
</module>
所以我退出了phpstorm,从第二个项目iml文件中删除了所有Project1条目,重新启动IDE,再次打开并附加新克隆的project1,突然就好了。
【讨论】:
以上是关于IntelliJ IDE | .iml 文件丢失或删除的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA + Maven 在 iml 文件中需要啥依赖项?