Hvad er IML-filformatet?
En .iml-fil er en XML-konfigurationsfil, der beskriver et enkelt modul i et IntelliJ IDEA-projekt. Hver moduldefinition registrerer modultypen (såsom JAVA_MODULE, WEB_MODULE eller PYTHON_MODULE), kilde- og testrødder i modulets indholdsmappe, ekskluderede mapper og den fulde afhængighedskæde - herunder JDK, andre moduler og biblioteksreferencer. IntelliJ IDEA, Android Studio og andre JetBrains-IDE'er læser .iml-filer for at bestemme projektstrukturen uden at scanne filsystemet igen.
Filen er almindelig UTF-8 XML. Rodelementet er <module type="..." version="4">, og dets primære underordnede element er NewModuleRootManager-komponenten, som indeholder elementerne <content>, <sourceFolder>, <excludeFolder> og <orderEntry>. Der er ingen binære data, komprimering eller kryptering involveret.
.iml-filer oprettes og vedligeholdes automatisk af IDE'en. De gemmes enten i modulets egen rodmappe eller inde i projektmappen .idea/ afhængigt af IDE-version og projektlayout. JetBrains anbefaler at tilføje .iml-filer til .gitignore i projekter med flere udviklere, der bruger Gradle eller Maven, fordi IDE'en regenererer dem automatisk fra build-scriptet ved import. I projekter uden et build-værktøj er .iml-filer typisk versionsstyrede.
Manuel redigering er sjældent nødvendig; IDE'en administrerer modulindstillinger via dialogboksen Project Structure.
Sikkerhed og tryghed
RISIKO: LOWIML-filer er almindelige XML-konfigurationsfiler - ikke eksekverbare. De kan referere til eksterne JAR-filer eller biblioteker, der teoretisk set kunne pege på ondsindede stier, men selve filen kan ikke køre kode. Sikker at åbne i en teksteditor. I et ondsindet lager kan en manipuleret .iml pege afhængighedsstier til uventede placeringer - inspicer før synkronisering i et ukendt projekt.
Formatdetaljer
kort fortalt- ACT! Internet Mail Message - Gammel e-mail-meddelelsesfil fra ACT! kontaktstyringssoftware (Sage); obskur og reelt forældet.
Programmer der åbner IML-filer
Tekniske detaljer
dyb specifikation| XML-rodelement | `<module type="..." version="4">` - `version="4"` er den nuværende formatrevision |
| Modultyper | `JAVA_MODULE`, `WEB_MODULE`, `PYTHON_MODULE`, `ANDROID_MODULE` og andre IDE-specifikke typer |
| Nøglekomponent | `NewModuleRootManager` indeholder kilderødder, ekskluderede mapper og rækkefølge for afhængigheder |
| Erklæring af kilderod | `<sourceFolder url="..." isTestSource="false"/>` skelner mellem produktions- og testkildesæt |
| Afhængighedsposter | `<orderEntry>`-elementer refererer til JDK, modul-til-modul-afhængigheder og biblioteks-jars |
| Kodning | Almindelig UTF-8 tekst; ingen komprimering, kryptering eller binære sektioner |
| Lagringsplacering | Modulets rodmappe eller projektmappen `.idea/`, afhængigt af IDE-version og projektopsætning |
| Autogenerering | Gradle- og Maven-importer regenererer `.iml`-filer; manuelt redigerede poster kan blive overskrevet ved genimport |
| Vejledning til versionsstyring | Ekskluder fra VCS, når Gradle/Maven bruges; inkluder, når der ikke findes et build-værktøj |
| Formatets versionshistorik | Rodelementets `version`-attribut er gået fra `2` → `3` → `4` gennem IntelliJ IDEA-udgivelser |
| Kompatible IDE'er | IntelliJ IDEA, Android Studio, PyCharm, WebStorm og alle andre IDE'er på JetBrains-platformen |
| Typisk størrelse | 1 KB - 50 KB, større for moduler med mange afhængigheder eller kilderødder |
| Udgivet | IntelliJ IDEA 1.0, January 2001 |
| Seneste version | No formal versioning; format evolved continuously with IDEA releases; current format used in IDEA 2024+ |
| Specifikation | www.jetbrains.com |
IML-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om IML-filer.