IntelliJ IDE | .iml Файл потерян или удален

На прошлой неделе я работал над проектом Java EE с IntelliJ IDE.

Сегодня: когда я запустил свой IntelliJ 2016.1, он дал мне ошибку:

Ошибка при загрузке проекта

Не удается загрузить модуль FirstWebApp

Когда я просмотрел детали, он сказал, что не может найти мой файл FirstWebApp.iml и поэтому не может загрузить мой проект.

Я проверил структуру своего проекта в проводнике, и там было все, кроме файла iml. Я также посмотрел в корзину, но там тоже не нашел.

  • Как такой файл может просто исчезнуть?

  • Как я могу вернуть свой iml-файл, если это возможно?

  • Что делают эти файлы iml?

Я новичок в мире Java. Если нужна дополнительная информация, просто прокомментируйте! :)


person WetWer    schedule 11.04.2016    source источник
comment
Не имеет отношения к исходному вопросу, но я просто хочу добавить: если вы работаете с git, настройте gitignore, чтобы эти файлы не были отправлены   -  person Arefe    schedule 16.02.2018


Ответы (10)


Файлы * .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), представленное стандартным значком обновления.

person dambros    schedule 11.04.2016
comment
Думаю, теперь эта кнопка выглядит немного иначе. Я щелкнул по обновлению всех проектов Gradle и выполнил задачи Gradle в окне Gradle. Не уверен, какой из них сгенерировал файл iml, но после этого все было в порядке. - person hBrent; 20.12.2017
comment
Теперь настройки другие. Я до сих пор не понимаю, как регенерировать файл impl в проекте maven. - person DrB; 16.05.2018
comment
@BeC Я только что загрузил последнюю версию Intellij CE, и для проектов Maven та же процедура по-прежнему регенерировала файлы * .iml. Кнопка + больше не зеленая, но после ее нажатия и импорта модуля из существующих источников она заработала. Возможно, вы можете попытаться удалить файл .idea / modules.xml перед добавлением модулей обратно в Intellij, чтобы восстановить все. Дайте мне знать, сработало это или нет, пожалуйста. - person dambros; 17.05.2018
comment
Нет кнопки sync project - person IgorGanapolsky; 16.10.2019
comment
У меня был модуль, созданный сторонним приложением (который включает некоторые файлы кода, которые я бы предпочел редактировать в IntelliJ, поэтому я был включен в мой проект IntelliJ)… другое приложение «услужливо» удалило файл .iml. Поэтому я обнаружил, что, казалось бы, универсальный способ восстановить файл .iml - это удалить модуль из проекта, а затем повторно добавить его из существующих источников ... - person JPGringo; 09.03.2020
comment
@dambros, что делать, чтобы решить эту проблему в Pycharm ?? Любая идея?? - person Prateek Gupta; 27.04.2021
comment
@PrateekGupta, что именно происходит в Pycharm? Я чувствую, что проблема с градиентом не относится к python - person dambros; 26.05.2021
comment
Проблема @dambros решена. Ознакомьтесь с stackoverflow.com/q/67625251/13329963 - person Prateek Gupta; 26.05.2021

Мой проект mvn также некорректно загружался в IntelliJ IDEA после того, как я удалил файл .iml. Я исправил это так:

  1. Закрытая IntelliJ IDEA
  2. Удален .idea dir, который был в моем проекте dir.
  3. Я снова открыл IntelliJ IDEA и .idea dir, а также .iml через некоторое время был автоматически воссоздан IntelliJ.

Исправлено для меня.

person tuiz    schedule 12.11.2019
comment
Ты спасешь мой день! - person Chris Wu; 13.02.2020
comment
Спасибо! после того, как мне пришлось сделать: Файл - ›Недействительные кеши / перезапуск - person Cohensius; 12.03.2020
comment
Дай бог здоровья @tuiz! - person Seydazimov Nurbol; 13.05.2020
comment
это также устранило мою проблему! - person Russell Lego; 15.09.2020
comment
Другие методы предполагали maven или gradle. Я использую IntelliJ без любого из них, и это сработало для меня. Фактически, когда я использовал мастер настроек проекта для переименования проекта, он не обновлял .iml, и в результате я получил новый .iml-файл с правильным именем. - person steven smith; 28.04.2021
comment
Не могу тебя отблагодарить! - person DaminiVyas; 16.06.2021

Для проектов Maven:

  • Откройте Окно инструмента Maven (для пользователей intellij - щелкните правой кнопкой мыши имя проекта и прокрутите вниз, чтобы найти окно инструмента Maven) (обозначено этим значком:  введите описание изображения здесь )
  • Нажмите кнопку Повторно импортировать все проекты Maven (обозначенной этим значком: Повторно импортировать все проекты Maven).

Инструкции: https://www.jetbrains.com/help/idea/maven-projects-tool-window.html

person DanArl    schedule 11.11.2019
comment
Это единственная инструкция, по которой мой многослойный проект Maven был импортирован как проект / модуль Maven. Спасибо. - person NuCradle; 27.01.2020

введите описание изображения здесь

Если вы удалите файл *.iml и папку .idea и закроете IntelliJ, он будет повторно сгенерирован, когда вы снова откроете проект в следующий раз.

person Arefe    schedule 07.01.2020

Я также случайно удалил файл .iml. Вот как это разрешилось:

  1. Закрытая IntelliJ IDEA
  2. Повторно открытая программа
  3. Выбранный проект импорта -> Создать проект из существующих источников
  4. Нажал "Далее". Он создал для меня правильную конфигурацию проекта.
person vitaliis    schedule 27.04.2020

Если вы не можете восстановить его наиболее популярным способом, вы можете просто скопировать другой файл .iml, вставить его в пакет *, для которого требуется файл .iml, и переименовать файл .iml в имя пакета. Это должно сработать, если это тот же тип (в моем случае UTF-8).

* Скопируйте файл .iml, зайдя в файлы пакета, щелкнув правой кнопкой мыши имя пакета и нажав "Вставить".

Вы можете сделать это на левой панели задач. Я подготовил демонстрацию видео (без звука).

person SassyLlama Boi    schedule 23.12.2018

  1. удалить папку .idea внутри вашего проекта
  2. повторно импортировать проект

он снова скомпилирует и создаст папку .idea для конфигурации.

person Vikramjeet Singh    schedule 21.07.2020
comment
Самое простое решение. И это очень хорошо работает, когда ваш проект не основан ни на gradle, ни на maven. Спасибо! - person Sushank Dahiwadkar; 30.03.2021

Создайте новый файл с названием проекта и вставьте его. Если вы работаете с флаттером.

<?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>
person Ashish Bairwa    schedule 09.09.2019
comment
Что вы имеете в виду под project name? - person IgorGanapolsky; 16.10.2019
comment
@IgorGanapolsky попробуйте имя папки проекта: поэтому path / to / projects / my-project будет означать, что файл .iml в этой папке должен называться my-project.iml . это по крайней мере то, что AndroidStudio создает автоматически, когда я импортирую проект - person rexxar; 08.05.2020

В моем случае обновление Gradle не сработало. Также отсутствовало несколько папок проекта, поэтому я также не мог копировать / вставлять новые файлы .iml.

Однако, когда я заново открыл проект, выбрав Delete Existing Project and Import, проект смог воссоздать все файлы .iml.

person Sigurd Knarhøi Johannsen    schedule 18.09.2019
comment
Есть Delete Existing Project? - person IgorGanapolsky; 16.10.2019
comment
Да, но при этом он не удалит ваш проект. Он правильно закроет ваш проект в IntelliJ, а затем снова откроет его с нуля. Обычно вы не хотите этого делать, поскольку повторное открытие проекта таким образом занимает больше времени. Но когда что-то не работает - это может вам помочь. - person Sigurd Knarhøi Johannsen; 18.10.2019
comment
Стоит отметить, что это также очистит ваши конфигурации запуска / отладки. Так что вам придется их воссоздать. - person Sigurd Knarhøi Johannsen; 18.10.2019

Я использую 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, и внезапно все стало нормально.

person Allar Olgo    schedule 29.07.2020