Hva er IML-filformatet?
En .iml-fil er en XML-konfigurasjonsfil som beskriver en enkelt modul i et IntelliJ IDEA-prosjekt. Hver moduldefinisjon registrerer modultypen (som JAVA_MODULE, WEB_MODULE eller PYTHON_MODULE), kilde- og testrøtter i modulens innholdskatalog, ekskluderte mapper og hele avhengighetskjeden - inkludert JDK, andre moduler og biblioteksreferanser. IntelliJ IDEA, Android Studio og andre JetBrains IDE-er leser .iml-filer for å bestemme prosjektstrukturen uten å skanne filsystemet på nytt.
Filen er ren UTF-8 XML. Rotelementet er <module type="..." version="4">, og dens primære underelement er komponenten NewModuleRootManager, som inneholder elementene <content>, <sourceFolder>, <excludeFolder> og <orderEntry>. Ingen binære data, komprimering eller kryptering er involvert.
.iml-filer opprettes og vedlikeholdes automatisk av IDE-en. De lagres enten i modulens egen rotkatalog eller inne i prosjektmappen .idea/, avhengig av IDE-versjon og prosjektoppsett. JetBrains anbefaler å legge til .iml-filer i .gitignore i prosjekter med flere utviklere som bruker Gradle eller Maven, fordi IDE-en regenererer dem automatisk fra byggeskriptet ved import. I prosjekter uten et byggverktøy er .iml-filer vanligvis versjonskontrollert.
Manuell redigering er sjelden nødvendig; IDE-en administrerer modulinnstillinger gjennom dialogboksen «Project Structure».
Sikkerhet og trygghet
RISIKO: LOWIML-filer er rene XML-konfigurasjonsfiler - ikke kjørbare. De kan referere til eksterne JAR-filer eller biblioteker som teoretisk sett kan peke til ondsinnede stier, men selve filen kan ikke kjøre kode. Trygg å åpne i en teksteditor. I et ondsinnet repositorium kan en manipulert .iml peke avhengighetsstier til uventede steder - inspiser før synkronisering i et ukjent prosjekt.
Formatdetaljer
i et nøtteskall- ACT! Internet Mail Message - Gammel e-postmeldingsfil fra ACT! kontaktbehandlingsprogramvare (Sage); obskur og i praksis foreldet.
Programmer som åpner IML-filer
Tekniske detaljer
dyp spesifikasjon| XML-rotelement | `<module type="..." version="4">` - `version="4"` er den gjeldende formatrevisjonen |
| Modultyper | `JAVA_MODULE`, `WEB_MODULE`, `PYTHON_MODULE`, `ANDROID_MODULE` og andre IDE-spesifikke typer |
| Nøkkelkomponent | `NewModuleRootManager` inneholder kilderøtter, ekskluderte mapper og oppføringer for avhengighetsrekkefølge |
| Deklarasjon av kilderot | `<sourceFolder url="..." isTestSource="false"/>` skiller produksjonskode fra testkodesett |
| Avhengighetsoppføringer | `<orderEntry>`-elementer refererer til JDK, modul-til-modul-avhengigheter og biblioteks-JAR-filer |
| Koding | Ren UTF-8 tekst; ingen komprimering, kryptering eller binære seksjoner |
| Lagringssted | Modulens rotkatalog eller prosjektmappen `.idea/`, avhengig av IDE-versjon og prosjektoppsett |
| Autogenerering | Gradle- og Maven-importer regenererer `.iml`-filer; manuelt redigerte oppføringer kan bli overskrevet ved re-import |
| Veiledning for versjonskontroll | Ekskluder fra VCS når Gradle/Maven brukes; inkluder når ingen byggverktøy er til stede |
| Historikk for formatversjon | Rotelementets `version`-attributt har utviklet seg fra `2` → `3` → `4` gjennom IDEA-utgivelser |
| Kompatible IDE-er | IntelliJ IDEA, Android Studio, PyCharm, WebStorm og alle andre IDE-er på JetBrains-plattformen |
| Typisk størrelse | 1 KB - 50 KB, større for moduler med mange avhengigheter eller kilderøtter |
| Utgitt | IntelliJ IDEA 1.0, January 2001 |
| Siste versjon | No formal versioning; format evolved continuously with IDEA releases; current format used in IDEA 2024+ |
| Spesifikasjon | www.jetbrains.com |
IML-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om IML-filer.