Vad är filformatet IML?
En .iml-fil är en XML-konfigurationsfil som beskriver en enskild modul i ett IntelliJ IDEA-projekt. Varje moduldefinition registrerar modultypen (såsom JAVA_MODULE, WEB_MODULE eller PYTHON_MODULE), källkods- och teströtter inom modulens innehållskatalog, exkluderade mappar och hela beroendekedjan - inklusive JDK, andra moduler och biblioteksreferenser. IntelliJ IDEA, Android Studio och andra JetBrains-utvecklingsmiljöer läser .iml-filer för att fastställa projektstrukturen utan att behöva skanna filsystemet på nytt.
Filen är vanlig UTF-8 XML. Rotelementet är <module type="..." version="4">, och dess primära underordnade element är komponenten NewModuleRootManager, som innehåller elementen <content>, <sourceFolder>, <excludeFolder> och <orderEntry>. Ingen binär data, komprimering eller kryptering används.
.iml-filer skapas och underhålls automatiskt av utvecklingsmiljön. De lagras antingen i modulens egen rotkatalog eller inuti projektmappen .idea/ beroende på version av utvecklingsmiljön och projektlayout. JetBrains rekommenderar att man lägger till .iml-filer i .gitignore i projekt med flera utvecklare som använder Gradle eller Maven, eftersom utvecklingsmiljön återskapar dem automatiskt från byggskriptet vid import. I projekt utan ett byggverktyg är .iml-filer vanligtvis versionshanterade.
Manuell redigering behövs sällan; utvecklingsmiljön hanterar modulinställningar via dialogrutan Project Structure.
Säkerhet & trygghet
RISK: LOWIML-filer är vanliga XML-konfigurationsfiler - inte körbara. De kan referera till externa JAR-filer eller bibliotek som teoretiskt sett kan peka på skadliga sökvägar, men själva filen kan inte köra kod. Säker att öppna i en textredigerare. I ett skadligt kodförråd kan en manipulerad .iml-fil peka beroendesökvägar till oväntade platser - inspektera före synkronisering i ett obekant projekt.
Formatdetaljer
i ett nötskal- ACT! Internet Mail Message - Äldre e-postfil från ACT! kontakthanteringsprogramvara (Sage); obskyr och i praktiken föråldrad.
Program som öppnar IML-filer
Tekniska detaljer
djup specifikation| XML-rotelement | `<module type="..." version="4">` - `version="4"` är den nuvarande formatrevisionen |
| Modultyper | `JAVA_MODULE`, `WEB_MODULE`, `PYTHON_MODULE`, `ANDROID_MODULE` och andra specifika typer för utvecklingsmiljön |
| Nyckelkomponent | `NewModuleRootManager` innehåller källkodsrötter, exkluderade mappar och ordningsföljd för beroenden |
| Deklaration av källkodsrot | `<sourceFolder url="..." isTestSource="false"/>` skiljer produktionskod från testkod |
| Beroendeposter | `<orderEntry>`-element refererar till JDK, beroenden mellan moduler och biblioteks-JAR-filer |
| Kodning | Vanlig UTF-8-text; ingen komprimering, kryptering eller binära sektioner |
| Lagringsplats | Modulens rotkatalog eller projektmappen `.idea/`, beroende på version av utvecklingsmiljön och projektinställningar |
| Automatisk generering | Import av Gradle och Maven återskapar `.iml`-filer; manuellt redigerade poster kan skrivas över vid ny import |
| Vägledning för versionshantering | Exkludera från VCS när Gradle/Maven används; inkludera när inget byggverktyg finns |
| Historik för formatversion | Rotelementets `version`-attribut har gått från `2` → `3` → `4` genom olika IntelliJ IDEA-releaser |
| Kompatibla utvecklingsmiljöer | IntelliJ IDEA, Android Studio, PyCharm, WebStorm och alla andra utvecklingsmiljöer på JetBrains-plattformen |
| Typisk storlek | 1 KB - 50 KB, större för moduler med många beroenden eller källkodsrötter |
| Släppt | IntelliJ IDEA 1.0, January 2001 |
| Senaste version | No formal versioning; format evolved continuously with IDEA releases; current format used in IDEA 2024+ |
| Specifikation | www.jetbrains.com |
IML-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om IML-filer.