IML ファイル形式とは?
.iml ファイルは、IntelliJ IDEA プロジェクト内の単一のモジュールを記述する XML 設定ファイルです。各モジュールの定義には、モジュールタイプ(JAVA_MODULE、WEB_MODULE、PYTHON_MODULE など)、モジュールのコンテンツディレクトリ内のソースおよびテストルート、除外されたフォルダ、および JDK、他のモジュール、ライブラリ参照を含む完全な依存関係チェーンが記録されます。IntelliJ IDEA、Android Studio、およびその他の JetBrains IDE は、ファイルシステムを再スキャンすることなくプロジェクト構造を決定するために .iml ファイルを読み取ります。
このファイルはプレーンな UTF-8 XML です。ルート要素は <module type="..." version="4"> であり、その主要な子は <content>、<sourceFolder>、<excludeFolder>、および <orderEntry> 要素を保持する NewModuleRootManager コンポーネントです。バイナリデータ、圧縮、または暗号化は含まれていません。
.iml ファイルは IDE によって自動的に作成および維持されます。IDE のバージョンやプロジェクトのレイアウトに応じて、モジュール自体のルートディレクトリまたは .idea/ プロジェクトフォルダ内に保存されます。JetBrains は、Gradle や Maven を使用するマルチデベロッパープロジェクトでは、インポート時にビルドスクリプトから IDE が自動的に再生成するため、.iml ファイルを .gitignore に追加することを推奨しています。ビルドツールを使用しないプロジェクトでは、通常 .iml ファイルはバージョン管理の対象となります。
手動での編集が必要になることは稀です。IDE は「プロジェクト構造」ダイアログを通じてモジュールの設定を管理します。
セキュリティと安全性
リスク: LOWIML ファイルはプレーンな 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 テキスト。圧縮、暗号化、またはバイナリセクションはありません |
| 保存場所 | IDE のバージョンとプロジェクト設定に応じて、モジュールのルートディレクトリまたは `.idea/` プロジェクトフォルダに保存されます |
| 自動生成 | Gradle および Maven のインポートにより `.iml` ファイルが再生成されます。手動で編集したエントリは再インポート時に上書きされる可能性があります |
| バージョン管理のガイダンス | Gradle/Maven を使用する場合は VCS から除外し、ビルドツールが存在しない場合は含めます |
| 形式バージョンの履歴 | ルート要素の `version` 属性は、IntelliJ IDEA のリリースに伴い `2` → `3` → `4` と進化してきました |
| 互換性のある IDE | IntelliJ IDEA、Android Studio、PyCharm、WebStorm、およびその他すべての JetBrains プラットフォーム IDE |
| 一般的なサイズ | 1 KB ~ 50 KB。多くの依存関係やソースルートを持つモジュールの場合は大きくなります |
| リリース日 | 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 の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。IML ファイルについて最初の質問をしてみましょう。
よくある質問
.iml ファイルを Git にコミットすべきですか?
.iml を .gitignore に追加してください。IDE がビルドスクリプトからこれらを再生成します。IDEA 管理のプロジェクト(Gradle/Maven なし)の場合:チームメンバーがモジュール設定を取得できるようにコミットしてください。IntelliJ で .iml ファイルに関するエラーが表示されます。どうすればよいですか?
.iml ファイルを削除してプロジェクトを再度開いてください。IntelliJ が再生成します。Gradle プロジェクトの場合は、「Gradle Sync」も実行してください。.iml ファイルを手動で編集できますか?
.IML ファイルと .IPR ファイルの違いは何ですか?
.iml はモジュール記述子です。.ipr はレガシーなプロジェクトファイル(古い IntelliJ 形式)です。現代の IntelliJ プロジェクトでは、.ipr の代わりに .idea/ ディレクトリを使用します。なぜ Android Studio プロジェクトに複数の .iml ファイルがあるのですか?
.iml ファイルを持っています。