IntelliJ IDE | .iml Файл потерян или удален
На прошлой неделе я работал над проектом Java EE с IntelliJ IDE.
Сегодня: когда я запустил свой IntelliJ 2016.1, он дал мне ошибку:
Ошибка загрузки проекта
Не удается загрузить модуль FirstWebApp
Когда я посмотрел на детали, он сказал, что не может найти мой файл FirstWebApp.iml и поэтому не может загрузить мой проект.
Я проверил мою структуру проекта в проводнике, и там было все, кроме файла iml. Я также посмотрел на корзину, но не смог найти ее там.
Как такой файл может просто исчезнуть?
Как я могу вернуть свой файл IML, если это возможно?
Что делают эти IML файлы?
Я новичок в мире Java. Если вам нужна дополнительная информация, просто комментируйте!:)
1 ответ
*.iml файлы не имеют ничего общего с вашим кодом /Java. Это скрытый файл, созданный Intellij в корневой папке вашего проекта, который содержит информацию о вашем модуле. По этой причине вам не следует создавать версии файлов такого типа, поскольку другим разработчикам, использующим другую IDE, они не понадобятся.
Если вы закрыли Intellij, я думаю, что нет способа вернуть тот же файл, но, с другой стороны, довольно просто восстановить новый файл.iml:
Gradle-проект
Нажмите на Sync Project with Gradle Files
кнопка (эта ) на панели инструментов;
Maven основанный проект
Перейдите в Файл> Структуры проекта> Модули> Добавить (нажмите зеленую кнопку +).
Редактировать:
Мой предыдущий ответ был основан на IntelliJ 14, и, похоже, некоторые вещи изменились в более новых версиях, на что указывают hBrent и BeC в комментариях.
Используя Intellij Community 2018.1 для этого обновления:
Maven основанный проект
Процедура остается прежней, единственное отличие, которое я видел, это то, что значок " Добавить" больше не зеленый. Можно также попробовать удалить rootFolder/.idea/modules.xml
и добавление модулей впоследствии для сброса всей информации, касающейся предыдущих конфигураций.
Gradle-проект
Следует использовать "Обновить все проекты Gradle" в окне "Инструменты Gradle" ("Просмотр"> "Окна инструментов"> "Gradle"), представленном стандартным значком обновления.
Мой проект mvn также некорректно загружался в IntelliJ IDEA после того, как я удалил файл.iml. Я исправил это так:
- Закрытая IntelliJ IDEA
- Удален.idea dir, который был в моем проекте dir.
- Я снова открыл IntelliJ IDEA и.idea dir, а также.iml через некоторое время был автоматически воссоздан IntelliJ.
Исправлено для меня.
Для проектов Maven:
- Откройте Maven Window Tool (указывается с этим значком: )
- Нажмите кнопку "Повторно импортировать все проекты Maven"(обозначена этим значком:) .
Инструкции: https://www.jetbrains.com/help/idea/maven-projects-tool-window.html
Если вы удалите *.iml
файл и .idea
папку и закройте IntelliJ
, он будет повторно сгенерирован, когда вы снова откроете проект в следующий раз.
Я также случайно удалил файл.iml. Вот как это разрешилось:
- Закрытая IntelliJ IDEA
- Повторно открытая программа
- Выбранный проект импорта -> Создать проект из существующих источников
- Нажмите "Далее". Это создало для меня правильную конфигурацию проекта.
- удалить папку.idea внутри вашего проекта
- повторно импортировать проект
он снова скомпилирует и создаст папку.idea для конфигурации.
Если вы не можете восстановить его наиболее популярным способом, вы можете просто скопировать другой файл.iml, вставить его в пакет *, для которого требуется файл.iml, и переименовать файл.iml в имя пакета. Это должно работать, если это тот же тип (в моем случае UTF-8).
* Скопируйте файл.iml, перейдя в файлы пакета, щелкнув правой кнопкой мыши имя пакета и нажав Вставить.
Вы можете сделать это в левой панели задач. Я подготовил демонстрацию видео (нет звука).
В моем случае обновление Gradle не сработало. Также отсутствовало несколько папок проекта, поэтому я не мог копировать / вставлять новые файлы.iml.
Однако когда я открыл проект заново, выбрав Delete Existing Project and Import
, проект смог воссоздать все файлы.iml.
Я использую phpstorm и проект с несколькими репозиториями.
Мой сценарий заключался в том, что по неуказанным причинам я удалил "основной" каталог проекта (и снова клонировал). В результате, я думаю, следующий каталог проекта стал основным. А также старый "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, удалил все записи Project1 из второго iml-файла проекта, перезапустил IDE, снова открыл и прикрепил вновь клонированный project1, и внезапно все стало нормально.
Создайте новый файл с названием проекта и вставьте его. Если вы работаете с флаттером.
<?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>