Что такое формат файла IML?
Файл .iml - это конфигурационный файл XML, описывающий отдельный модуль внутри проекта IntelliJ IDEA. Каждое определение модуля фиксирует тип модуля (например, JAVA_MODULE, WEB_MODULE или PYTHON_MODULE), корни исходного кода и тестов в каталоге содержимого модуля, исключенные папки и полную цепочку зависимостей, включая JDK, другие модули и ссылки на библиотеки. IntelliJ IDEA, Android Studio и другие IDE от JetBrains читают файлы .iml, чтобы определить структуру проекта без повторного сканирования файловой системы.
Файл представляет собой обычный UTF-8 XML. Корневым элементом является <module type="..." version="4">, а его основным дочерним элементом - компонент NewModuleRootManager, который содержит элементы <content>, <sourceFolder>, <excludeFolder> и <orderEntry>. Бинарные данные, сжатие или шифрование не используются.
Файлы .iml создаются и поддерживаются IDE автоматически. Они хранятся либо в корневом каталоге самого модуля, либо внутри папки проекта .idea/ в зависимости от версии IDE и структуры проекта. JetBrains рекомендует добавлять файлы .iml в .gitignore в многопользовательских проектах, использующих Gradle или Maven, так как IDE автоматически восстанавливает их из сценария сборки при импорте. В проектах без инструментов сборки файлы .iml обычно находятся под управлением системы контроля версий.
Ручное редактирование требуется редко; IDE управляет настройками модуля через диалоговое окно «Project Structure».
Безопасность и защита
РИСК: LOWФайлы IML являются обычными конфигурационными файлами XML и не являются исполняемыми. Они могут ссылаться на внешние JAR-файлы или библиотеки, которые теоретически могут указывать на вредоносные пути, но сам файл не может исполнять код. Безопасно открывать в текстовом редакторе. В вредоносном репозитории подделанный .iml может направлять пути зависимостей в неожиданные места - проверяйте перед синхронизацией в незнакомом проекте.
Детали формата
в двух словах- ACT! Internet Mail Message - Устаревший файл сообщения электронной почты из программного обеспечения для управления контактами ACT! (Sage); малоизвестен и фактически вышел из употребления.
Программы, открывающие файлы IML
Технические подробности
глубокая спецификация| Корневой элемент XML | `<module type="..." version="4">` - `version="4"` является текущей ревизией формата |
| Типы модулей | `JAVA_MODULE`, `WEB_MODULE`, `PYTHON_MODULE`, `ANDROID_MODULE` и другие типы, специфичные для IDE |
| Ключевой компонент | `NewModuleRootManager` содержит корни исходников, исключенные папки и записи порядка зависимостей |
| Объявление корня исходного кода | `<sourceFolder url="..." isTestSource="false"/>` отличает рабочие исходники от тестовых |
| Записи зависимостей | Элементы `<orderEntry>` ссылаются на JDK, межмодульные зависимости и библиотечные JAR-файлы |
| Кодировка | Обычный текст UTF-8; без сжатия, шифрования или бинарных разделов |
| Место хранения | Корневой каталог модуля или папка проекта `.idea/`, в зависимости от версии IDE и настроек проекта |
| Автогенерация | Импорт Gradle и Maven пересоздает файлы `.iml`; записи, отредактированные вручную, могут быть перезаписаны при повторном импорте |
| Рекомендации по контролю версий | Исключайте из VCS при использовании Gradle/Maven; включайте при отсутствии инструментов сборки |
| История версий формата | Атрибут `version` корневого элемента прошел путь от `2` → `3` → `4` в разных выпусках IDEA |
| Совместимые IDE | IntelliJ IDEA, Android Studio, PyCharm, WebStorm и все остальные IDE на платформе JetBrains |
| Типичный размер | От 1 КБ до 50 КБ, больше для модулей с множеством зависимостей или корней исходного кода |
| Выпущен | IntelliJ IDEA 1.0, January 2001 |
| Последняя версия | No formal versioning; format evolved continuously with IDEA releases; current format used in IDEA 2024+ |
| Спецификация | www.jetbrains.com |
Конвертации IML
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах IML.